Usted estĆ” aquĆ:
Asignación de tipos de medios en registros de servicios externos.
Puede registrar especificaciones con directrices de tipo de medios de contenido consumes, produces u OpenAPI 3.0 no admitidas asignando los tipos de medios a tipos de medios admitidos. Especifique una asignación desde un menú desplegable en la pantalla de registro o proporcione la asignación con código utilizando la API de metadatos.
Asignación de tipos de medios durante el registro
Si intenta registrar un esquema que incluye un tipo de medio no admitido, se le solicita proporcionar una asignación en la pÔgina Asociar operaciones con tipos de medios admitidos.
Para asociar operaciones con un tipo de medio admitido:
- Tenga en cuenta el primer tipo de medios no admitido a la izquierda.
- Asigne el tipo de medio no admitido a un tipo de medio admitido seleccionando un tipo de medio admitido desde el menĆŗ desplegable directamente a la derecha.
- Si existen tipos de medios no admitidos adicionales en la lista, continúe por la lista y seleccione una asignación para cada tipo de medio no admitido enumerado.
- Haga clic en Siguiente.
ContinĆŗe con el registro seleccionando operaciones, como se describe en el paso nĀŗ10 de Registrar un servicio externo.
Asignación de tipos de medios con la API de metadatos
Para asignar manualmente un tipo de medios, el tipo de medios no admitido debe asignarse a un tipo de medios admitido como una asignación en el campo serviceBinding del archivo de metadatos ExternalServiceRegistration.
Para demostrar el método manual de asignación de tipos de medios, considere este ejemplo de Acme Bank.
El banco Acme especifica un servicio de OpenAPI 2.0 para su servicio de puntuaje de crƩdito. Define su propio tipo de medios para gestionar la carga compatible con JSON: application/x-acme-json:
{
"swagger":"2.0",
"info":{
"description":"A service for checking credit for an account.",
"version":"1.0.0",
"title":"Credit Decision"
},
"host":"<ACME's host>",
"paths":{
"/account/credit-rating":{
"get":{
"operationId":"getCreditRating",
"summary":"Evaluates credit rating for offered payment terms.",
"consumes":[
"application/x-acme-json"
],
"produces":[
"application/x-acme-json"
],
"parameters":[{
"description":"Account",
"in":"body",
"name":"body",
"required":true,
"schema":{
"$ref":"#/definitions/Account"
}
}],
"responses":{
"200":{
"description": "Credit rating",
"schema":{
"$ref":"#/definitions/CreditRating"
}
}
}
}
}
},
"definitions":{
"Account":{
"type":"object",
"properties":{
"accountId":{
"type":"string"
},
"accountHolder":{
"type":"string"
}
}
},
"CreditRating":{
"type":"object",
"properties":{
"creditRating":{
"type":"string"
}
}
}
}
} Para asignar el tipo de medios BankService al tipo de medios admitido application/json, abra un terminal de lĆnea de comandos. Cree un directorio en el que recuperar los metadatos del servicio externo.
> mkdir BankService
> cd BankServiceCree package.xml de manifiesto para los metadatos de servicio externo para que su BankService los recupere de su organización:
> touch package.xmlModifique package.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>BankService</members>
<name>ExternalServiceRegistration</name>
</types>
<version>53.0</version>
</Package>Recupere los metadatos para el servicio externo con el comando de CLI de Salesforce después de una autenticación realizada con éxito en su organización:
> sf project retrieve start --target-metadata-dir . --manifest package.xmlDescomprima el zip del paquete con los metadatos y navegue al directorio con el servicio externo:
> unzip unpackaged.zip
> cd unpackaged/externalServiceRegistrationsModifique los enlaces de servicios en el archivo de metadatos de registro de servicios externos BankService.externalServiceRegistration. No interrumpa la sección <serviceBinding> (en negrita) con saltos de lĆnea, ya que interrumpe la retirada de nĆŗmeros de serie.
<?xml version="1.0" encoding="UTF-8"?>
<ExternalServiceRegistration xmlns="http://soap.sforce.com/2006/04/metadata">
<label>MediaTypeMap</label>
<namedCredential>BankServiceEndpoint</namedCredential>
<operations>
<active>true</active>
<name>getcreditrating</name>
</operations>
<registrationProviderType>Custom</registrationProviderType>
<schema>{
...
}
</schema>
<schemaType>OpenApi</schemaType>
<serviceBinding>{"compatibleMediaTypes"
:{"application/x-acme-json"
:"application/x-acme-json"}}</serviceBinding>
<status>Complete</status>
</ExternalServiceRegistration>El enlace de servicio especifica en formato JSON los tipos de medios no permitidos definidos por este registro de servicio externo:
{"compatibleMediaTypes":{
"application/x-acme-json":"application/x-acme-json"
}}Asigne el tipo de medio no permitido al tipo de medio permitido para la asignación de números de serie de carga del servicio externo:
{"compatibleMediaTypes":{
"application/x-acme-json":"application/json"
}}Los metadatos actualizados para el registro de muestra del servicio externo de valoración de banco respetan la asignación de tipo de medio al tipo de medio permitido cuando se implementa en un paquete:
<?xml version="1.0" encoding="UTF-8"?>
<ExternalServiceRegistration xmlns="http://soap.sforce.com/2006/04/metadata">
<label>MediaTypeMap</label>
<namedCredential>BankService</namedCredential>
<operations>
<active>true</active>
<name>getcreditrating</name>
</operations>
<registrationProviderType>Custom</registrationProviderType>
<schema>{
...
}
</schema>
<schemaType>OpenApi</schemaType>
<serviceBinding>{"compatibleMediaTypes"
:{"application/x-acme-json"
:"application/json"}}</serviceBinding>
<status>Complete</status>
</ExternalServiceRegistration>No interrumpa la sección <serviceBinding> con saltos de lĆnea, ya que interrumpe la retirada de nĆŗmeros de serie.
Guarde el archivo de metadatos de registro del servicio externo modificado e implemƩntelo:
> cd ../..
> sf project deploy start --metadata-dir unpackagedPara obtener mÔs información, consulte:

