Exportez des API d'un groupe au format OAS 2.0 ou OAS 3.0 pour les migrer entre différents comptes, régions ou plateformes.
Vue d'ensemble
API Gateway permet d'exporter des API au format OAS. Associée à la fonctionnalité d'importation d'API, cette option répond aux scénarios suivants. Pour plus d'informations sur l'importation d'API, consultez Importer des API conformes à OAS.
Migrer des API entre comptes, régions ou plateformes : exportez des API conformes à OAS depuis API Gateway ou une autre plateforme, puis importez-les dans un autre compte Alibaba Cloud, une autre région ou une autre plateforme.
Publier et étendre des API : convertissez des définitions d'API conformes à OAS en ressources API dans API Gateway pour créer et configurer rapidement des API, puis personnalisez leur comportement selon vos besoins. API Gateway vous aide à gérer les autorisations d'accès, à limiter le trafic et à transférer les requêtes de manière sécurisée.
Intégrer et collaborer : intégrez les API exportées avec d'autres outils ou plateformes de développement basés sur la norme OAS. Le partage des définitions d'API réduit la charge de communication et l'effort de développement entre les équipes.
Exporter des API conformes à OAS
Vous pouvez exporter un groupe d'API entier ou des API spécifiques.
Procédure
-
Exporter un groupe d'API
Connectez-vous à la console API Gateway.
Dans le volet de navigation de gauche, choisissez Manage APIs > API Groups.
Sur la page API Groups, recherchez le groupe d'API à exporter. Cliquez sur
, puis choisissez Export API Definitions dans la colonne Actions.Dans la boîte de dialogue Export API Definitions, spécifiez les paramètres Data Format, Stage et Export Extended Definitions. Cliquez ensuite sur Confirm.
-
Exporter des API spécifiques
Connectez-vous à la console API Gateway.
Dans le volet de navigation de gauche, choisissez Manage APIs > APIs.
Sur la page APIs, sélectionnez les API à exporter, puis choisissez More > Export API Definitions sous la liste.
Dans la boîte de dialogue Export API Definitions, spécifiez les paramètres Data Format, Stage et Export Extended Definitions. Cliquez ensuite sur Confirm.
Définitions d'API étendues
Si vous sélectionnez Yes pour le paramètre Export Extended Definitions, les champs spécifiques à API Gateway suivants sont ajoutés aux fichiers exportés.
|
Champ étendu |
Emplacement dans OAS 2.0 |
Emplacement dans OAS 3.0 |
Description |
Type |
Valeurs valides |
|
x-aliyun-apigateway-any-method |
Objet Paths |
Objet Paths |
La définition complète de la méthode ANY. |
Objet |
- |
|
x-aliyun-apigateway-backend |
Objet Operation |
Objet Operation |
Le service backend. |
Objet |
- |
|
x-aliyun-apigateway-api-market-enable |
Objet Operation |
Objet Operation |
Indique si l'API peut être publiée sur Alibaba Cloud Marketplace. |
Booléen |
|
|
x-aliyun-apigateway-api-force-nonce-check |
Objet Operation |
Objet Operation |
Indique si la protection contre la relecture est activée. |
Booléen |
|
|
x-aliyun-apigateway-parameter-handling |
Objet Operation |
Objet Operation |
Le mode de requête dans la définition de la requête. |
Chaîne |
|
|
x-aliyun-apigateway-auth-type |
Objet Operation |
Objet Operation |
Le type d'authentification de sécurité. |
Chaîne |
|
|
x-aliyun-apigateway-app-code-type |
Objet Operation |
Objet Operation |
Le type d'authentification AppCode. |
Chaîne |
|
|
x-aliyun-apigateway-constant-parameters |
Objet Operation |
Objet Operation |
Les définitions des paramètres constants. |
Objet |
- |
|
x-aliyun-apigateway-system-parameters |
Objet Operation |
Objet Operation |
Les définitions des paramètres système. |
Objet |
- |
|
x-aliyun-apigateway-api-enable-internet |
Objet Operation |
Objet Operation |
Indique si l'accès via Internet est autorisé. |
Booléen |
|
|
x-aliyun-apigateway-success-demo |
Objet Operation |
Objet Operation |
L'exemple de retour pour un appel réussi. |
Chaîne |
- |
|
x-aliyun-apigateway-failed-demo |
Objet Operation |
Objet Operation |
L'exemple de retour pour un appel échoué. |
Chaîne |
- |
|
x-aliyun-apigateway-api-name |
Objet Operation |
Objet Operation |
Le nom de l'API. |
Chaîne |
- |
|
x-aliyun-apigateway-request-scheme |
S/O |
Objet Operation |
Les protocoles pris en charge par l'API, tels que HTTP. |
Chaîne |
- |
|
x-aliyun-apigateway-backend-location |
Objet Parameter |
Objet Parameter |
Les emplacements des paramètres mappés dans le service backend. |
Chaîne |
|
|
x-aliyun-apigateway-backend-name |
Objet Parameter |
Objet Parameter |
Les noms des paramètres mappés dans le service backend. |
Chaîne |
- |
|
x-aliyun-apigateway-parameter-demo |
Objet Parameter |
Objet Parameter |
Les exemples de valeurs de paramètre. |
Chaîne |
- |
|
x-aliyun-apigateway-response-messages |
Objet Responses |
Objet Responses |
Les messages d'erreur dans les définitions d'erreur. |
Chaîne |
- |
Description
Lors d'une exportation par groupe, le chemin de base du groupe est inclus.
Vous pouvez exporter jusqu'à 300 API simultanément. Si le groupe contient plus de 300 API, seules les 300 premières sont exportées.
Si la définition de modèle d'un groupe d'API ne peut pas être analysée, elle n'est pas exportée.
Lors de l'exportation d'API spécifiques, toutes les API sélectionnées sont exportées dans le même fichier.
Si plusieurs API partagent le même chemin et la même méthode, une seule est exportée.
Si vous sélectionnez No pour le paramètre Export Extended Definitions, la valeur OperationId dans le fichier exporté correspond à une chaîne concaténant le chemin de requête et la méthode de requête de la définition d'API (par exemple, export1ByGET).
Si vous sélectionnez Yes pour le paramètre Export Extended Definitions, les informations supplémentaires relatives à l'API (telles que le plug-in associé, l'application autorisée, le nom de domaine lié au groupe d'API et les définitions du service backend dans différents environnements) ne sont pas exportées.
Exemple
L'exemple suivant présente un groupe d'API exporté avec des définitions d'API étendues.
swagger: '2.0'
info:
description: Export from api group xxx
version: 1.0.0
title: Api Gateway API
basePath: /export
paths:
/export1/{pathParam}:
get:
summary: test export job 1.
operationId: export1pathParamByGET
schemes:
- http
- https
parameters:
- name: pathParam
in: path
description: the path parameter.
required: true
type: string
maxLength: 10
x-aliyun-apigateway-parameter-demo: pathValue
x-aliyun-apigateway-backend-name: pathParam
x-aliyun-apigateway-backend-location: path
- name: headParam
in: header
description: the header parameters.
required: false
type: string
x-aliyun-apigateway-parameter-demo: headerValue
x-aliyun-apigateway-backend-name: headParam
x-aliyun-apigateway-backend-location: query
- name: queryParam
in: query
description: the query parameters.
required: false
type: string
x-aliyun-apigateway-parameter-demo: queryValue
x-aliyun-apigateway-backend-name: queryParam
x-aliyun-apigateway-backend-location: header
responses:
'200':
description: success.
x-aliyun-apigateway-response-messages: success
'400':
description: client error.
x-aliyun-apigateway-response-messages: clent error
'500':
description: server error.
x-aliyun-apigateway-response-messages: server error
x-aliyun-apigateway-system-parameters:
- backendName: testClientIp
systemName: CaClientIp
location: header
x-aliyun-apigateway-constant-parameters:
- backendName: constantparam
location: header
value: constantValue
descriptoin: the constant parameters.
x-aliyun-apigateway-api-name: export_1
x-aliyun-apigateway-api-market-enable: false
x-aliyun-apigateway-api-force-nonce-check: true
x-aliyun-apigateway-parameter-handling: MAPPING
x-aliyun-apigateway-auth-type: APP
x-aliyun-apigateway-api-enable-internet: true
x-aliyun-apigateway-failed-demo: '{"result":"fail"}'
x-aliyun-apigateway-success-demo: '{"result":"success"}'
x-aliyun-apigateway-app-code-type: DEFAULT
x-aliyun-apigateway-backend:
body: good job
statusCode: 200
header:
- name: test
value: header1
type: MOCK
/export2/*:
x-aliyun-apigateway-any-method:
operationId: export_2
description: test export job 1.
x-aliyun-apigateway-api-market-enable: false
x-aliyun-apigateway-api-force-nonce-check: false
x-aliyun-apigateway-api-enable-internet: true
x-aliyun-apigateway-parameter-handling: PASSTHROUGH
x-aliyun-apigateway-auth-type: ANONYMOUS
x-aliyun-apigateway-success-demo: '{"result":"success"}'
x-aliyun-apigateway-failed-demo: '{"result":"fail"}'
schemes:
- http
- https
x-aliyun-apigateway-backend:
body: good job
statusCode: 200
header:
- name: test
value: header1
type: MOCK
x-aliyun-apigateway-constant-parameters:
- backendName: constantparam
location: header
value: constantValue
descriptoin: the constant parameters.
x-aliyun-apigateway-system-parameters:
- backendName: testClientIp
systemName: CaClientIp
location: header
responses:
'200':
description: success.
briefMessage: success
schema:
$ref: testModel
'400':
description: client error.
briefMessage: clent error
schema:
$ref: testModel
'500':
description: server error.
briefMessage: server error
definitions:
testModel:
type: object
required:
- name
properties:
dogProject:
type: object
properties:
name:
type: string
maxLength: 10
id:
type: integer
format: int64
name:
type: string
pattern: ^\d{3}-\d{2}-\d{4}$
id:
type: integer
format: int64
status:
type: string