Partager via


Créer une API personnalisée avec du code

Nonte

La création d’une API avec du code est un sujet avancé qui suppose que vous ayez lu et compris ces articles :

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 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ée à 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