Partager via


Créer une API personnalisée avec du code

Notes

Cette rubrique est une rubrique avancée qui suppose que vous avez déjà lu et compris ces rubriques :

Vous devez également comprendre comment créer des enregistrements Microsoft Dataverse, soit à l’aide de l’API Web, soit à l’aide du SDK pour .NET. Pour plus d’informations, voir :

Puisque les données d’API personnalisées sont enregistrées dans des tables, vous pouvez créer de nouvelles API par programme à l’aide de l’API web ou du SDK pour .NET.

Les tableaux dans Tableaux d’API personnalisés décrire toutes les propriétés que vous pouvez définir à l’aide de code.

Ce code utilise le CrmServiceClient avec un style de programmation à liaison anticipée. Vous pouvez également utiliser ServiceClient. Pour plus d′informations :

Cet exemple montre la création d’une action API personnalisée avec un paramètre de requête et une propriété de réponse en une seule opération. Pour plus d’informations : Créer des entités associées en une opération

Cette API personnalisée est créée dans le cadre d’une solution avec le nom unique CustomAPIExample et est associé à un type de plug-in avec id = 00000000-0000-0000-0000-000000000001.

string conn = $@"
    Url = {url};
    AuthType = OAuth;
    UserName = {userName};
    Password = {password};
    AppId = 51f81489-12ee-4a9e-aaae-a2591f45987d;
    RedirectUri = app://58145B91-0C36-4500-8554-080854F2AC97;
    LoginPrompt=Auto;
    RequireNewInstance = True";

//var service = new ServiceClient(conn);
var service = new CrmServiceClient(conn);
// var service = new ServiceClient(conn);

//The plug-in type
var pluginType = new EntityReference("plugintype", new Guid("00000000-0000-0000-0000-000000000001"));
var solutionUniqueName = "CustomAPIExample";

//The custom API
var customAPI = new CustomAPI
{
    AllowedCustomProcessingStepType = new OptionSetValue(0),//None
    BindingType = new OptionSetValue(0), //Global
    Description = "A simple example of a custom API",
    DisplayName = "Custom API Example",
    ExecutePrivilegeName = null,
    IsFunction = false,
    IsPrivate = false,
    Name = "sample_CustomAPIExample",
    PluginTypeId = pluginType,
    UniqueName = "sample_CustomAPIExample",
    IsCustomizable = new BooleanManagedProperty(false),
    customapi_customapirequestparameter = new List<CustomAPIRequestParameter>()
    {
        new CustomAPIRequestParameter {
            Description = "The StringParameter request parameter for custom API Example",
            DisplayName = "Custom API Example String Parameter",
            LogicalEntityName = null,
            IsOptional = false,
            Name = "sample_CustomAPIExample.StringParameter",
            Type = new OptionSetValue(10), //String
            UniqueName = "StringParameter",
            IsCustomizable = new BooleanManagedProperty(false)
        }
    },
    customapi_customapiresponseproperty = new List<CustomAPIResponseProperty>()
    {
        new CustomAPIResponseProperty {
            Description = "The StringProperty response property for custom API Example",
            DisplayName = "Custom API Example String Property",
            Name = "sample_CustomAPIExample.StringProperty",
            Type = new OptionSetValue(10), //String
            UniqueName = "StringProperty",
            IsCustomizable = new BooleanManagedProperty(false)
        }
    }
};

var createReq = new CreateRequest
{
    Target = customAPI
};
createReq["SolutionUniqueName"] = solutionUniqueName;

Guid customAPIId = ((CreateResponse)service.Execute(createReq)).id;

Voir aussi

Créer et utiliser des API personnalisées
Tables d’API personnalisées
Créez une API personnalisée à l’aide de l’outil d’enregistrement de plug-in
Créer une API personnalisée dans Power Apps
Créer une API personnalisée avec des fichiers de solution

Notes

Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)

Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).