2017-09-08 4 views
0

Pour le client celui-ci est à l'intérieur de client.yamlEn swagger, est-il possible d'importer plusieurs fichiers yaml dans un seul fichier?

/clients: 
    get: 
     tags: 
     - "Clients" 
     description: "List Clients The list capability" 
     produces: 
     - "application/json" 
     parameters: 
     - name: "tenantIdentifier" 
     in: "query" 
     required: true 
     type: "array" 
     items: 
      type: "string" 
      enum: 
      - "default" 
     responses: 
     200: 
      description: "successful operation" 
     400: 
      description: "Invalid status value" 
     security: 
     - basicAuth: [] 
    post: 
     tags: 
     - "Clients" 
     summary: "Create client if address is enabled" 
     description: "" 
     operationId: "addClient" 
     consumes: 
     - "application/json" 
     produces: 
     - "application/json" 
     parameters: 
     - name: "tenantIdentifier" 
     in: "query" 
     description: "" 
     required: true 
     type: "array" 
     items: 
      type: "string" 
      enum: 
      - "default" 
     - in: "body" 
     name: "body" 
     description: "Add what do you wnat to add " 
     required: true 
     schema: 
      allOf: 
      - $ref: '#/definitions/ClientStructure1' 
      - $ref: '#/definitions/ClientStructure2' 
      - $ref: '#/definitions/ClientStructure3' 
     responses: 
     405: 
      description: "Invalid input" 
     security: 
     - basicAuth: [] 

Pour l'utilisateur, cela est à l'intérieur de user.yaml

/users: 
    get: 
     tags: 
     - "Users" 
     summary: "Retrieve list of users" 
     produces: 
     - "application/json" 
     parameters: 
     - name: "tenantIdentifier" 
     in: "query" 
     required: true 
     type: "array" 
     items: 
      type: "string" 
      enum: 
      - "default" 
     responses: 
     200: 
      description: "successful operation" 
     400: 
      description: "Invalid status value" 
     security: 
     - basicAuth: [] 
    post: 
     tags: 
     - "Users" 
     summary: "Adds new application user." 
     description: "Note: Password information is not required (or processed). Password details at present are auto-generated and then sent to the email account given (which is why it can take a few seconds to complete)." 
     consumes: 
     - "application/json" 
     produces: 
     - "application/json" 
     parameters: 
     - name: "tenantIdentifier" 
     in: "query" 
     description: "" 
     required: true 
     type: "array" 
     items: 
      type: "string" 
      enum: 
      - "default" 
     - in: "body" 
     name: "body" 
     description: "Mandatory Fields: username, firstname, lastname, email, officeId, roles, sendPasswordToEmail" 
     required: true 
     schema: 
      $ref: "#/definitions/StructureForCreateUSer"   
     responses: 
     400: 
      description: "" 
     404: 
      description: "" 
     security: 
     - basicAuth: [] 
+0

Je crains que votre question ne sait pas. Pouvez-vous ajouter des exemples de plusieurs fichiers YAML et le fichier que vous souhaitez obtenir? Le plus de détails le mieux. – Helen

+0

Merci pour naswer.Por exemple j'ai 2 tags l'un d'eux et un autre est client: "https: // localhost: 8443/fineract-fournisseur/api/v1/users? TenantIdentifier = défaut" et "https: // localhost : 8443/fineract-provider/api/v1/client? TenantIdentifier = par défaut ". Pour le client les opérations Put, Get, Delete et Post j'ai écrit dans client.yaml et pour l'utilisateur dans user.yaml.Now je veux les connecter dans l'éditeur swagger. C'est possible? – John

+0

Veuillez poster un exemple de contenu de client.yaml et user.yaml. – Helen

Répondre

-1

OpenAPI 3 permet l'utilisation du mot clé $ ref:

https://swagger.io/docs/specification/using-ref/

+1

C'est faux. 1) La syntaxe '#/definitions/...' est utilisée pour faire référence aux modèles de données dans le fichier _same_. 2) 'allOf' est uniquement utilisé dans les modèles de données (schémas) et non dans les définitions d'opération. – Helen

+0

Suppression de l'exemple. Le lien vers la documentation devrait suffire à pointer l'utilisateur dans la bonne direction. –

1

vous ne pouvez pas $ref chemins entiers, mais vous pouvez $ref le contenu de personne p aths. Dans votre exemple, vous pouvez utiliser:

paths: 
    /clients: 
    $ref: clients.yaml#/~1clients 
    /users: 
    $ref: users.yaml#/~1users 

clients.yaml#/~1clients signifie que nous prenons le fichier clients.yaml, puis lire le contenu du nœud /clients dans ce fichier et remplacer le $ref avec que le contenu. ~1clients est /clients avec / s'est échappé comme ~1 selon les règles JSON Pointer.


Pour simplifier les références, vous pouvez supprimer les /clients: et /users: nœuds de vos fichiers clients.yaml et users.yaml

# clients.yaml 
get: 
    description: "List Clients The list capability" 
    ... 
post: 
    summary: "Create client if address is enabled" 
    ... 

puis utilisez

paths: 
    /clients: 
    $ref: clients.yaml 
    /users: 
    $ref: users.yaml 
+0

merci.Je vais essayer de cette façon aussi. – John