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 :
- Créer et utiliser des API personnalisées
- Créez une API personnalisée à l’aide de l’outil d’enregistrement de plug-in
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 :
- Utilisation des constructeurs CrmServiceClient pour se connecter à Dataverse
- Programmation avec liaison tardive et anticipée à l’aide du SDK pour .NET
- Créer des entités à l’aide du SDK pour .NET
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é).