Crear una API personalizada con código

Nota

Este es un tema avanzado que asume que ya ha leído y comprendido estos temas:

También debe conocer cómo crear registros de Microsoft Dataverse, utilizando la API web o el SDK para .NET. Para obtener más información, vea:

Debido a que los datos de la API personalizada se guardan en tablas, puede crear nuevas API mediante programación utilizando la API web o el SDK para .NET.

Las tablas de Tablas de API personalizadas describen todas las propiedades que puede configurar usando código.

Este código usa CrmServiceClient con un estilo de programación de enlace temprano. También puede usar ServiceClient. Más información:

Este ejemplo muestra la creación de una acción de API personalizada con un parámetro de solicitud y una propiedad de respuesta en una sola operación. Más información: Creación de entidades relacionadas en una operación

Esta api personalizada se crea como parte de una solución con el nombre único CustomAPIExample y está asociado con un tipo de complemento con 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;

Consulte también

Crear y usar API personalizadas
Tablas de API personalizadas
Cree una API personalizada con la herramienta de registro de complementos
Crear una API personalizada en Power Apps
Crear una API personalizada con archivos de solución

Nota

¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)

La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).