2016-09-01 12 views
8

chciałbym zakładać tablicę łańcuchów jakokreślić tablicę ciągów jako parametr ciała w Swagger API

[ 
    "id1", 
    "id2" 
] 

do API opartego Swagger. W moim pliku Swagger, mam te linie:

paths: 
    /some_url: 
    post: 
     parameters: 
     - name: ids 
      in: body 
      required: true 

Jaki jest prawidłowy sposób określić typ ids jako tablica ciągów?

Aktualizacja:

Według specyfikacji, następujące powinny działać w moim opcji:

parameters: 
    - in: body 
     description: xxx 
     required: true 
     schema: 
     type: array 
     items: 
      type: string 

https://github.com/Yelp/swagger_spec_validator nie akceptuje go i zwraca długą listę zwichrowanych błędów, które wyglądają jak kod oczekuje pewnej liczby $ref.

Odpowiedz

14

Twój opis ciągu znaków jest poprawny, ale definicja parametru pomija właściwość name, aby była poprawna.

Oto pełny przykład roboczych:

swagger: "2.0" 

info: 
    title: A dummy title 
    version: 1.0.0 

paths: 
    /path: 
    post: 
     parameters: 
     - in: body 
      description: xxx 
      required: true 
      name: a name 
      schema: 
      type: array 
      items: 
       type: string 
     responses: 
     default: 
      description: OK 

Spróbuj edytor online, aby sprawdzić OpenAPI (FKA Swagger.) Specyfikacje: http://editor.swagger.io/

+0

Należy zauważyć, że z najnowszym koderem swagger (2-2-3) ta konstrukcja da wyjątek wskaźnika pustego. Zamiast tego będziesz musiał użyć odwołania do typu. – PeterS

2

Na tablicy zawierającej obiekt jako jego zawartość, definicja obiektu może być również wyrażone za pomocą definicje & $ ref. Przykład:

schema: type: array items: $ref: '#/definitions/ObjectSchemaDefinition' definitions: ObjectSchemaDefinition: type: string

1

Stworzyłem problem Swagger jako pomoc dostarczonych przez Arnaud, choć jest ważny yaml, da Ci NPE wyjątki, gdy próbuje wygenerować. Trzeba będzie stanowić przedmiot podobny do poniższego:

myDataItem: 
    type: object 
    description: A list of values 
    required: 
     - values 
    properties: 
     values: 
     type: array 
     items: 
      type: string 

A potem się do niego (w punkcie pocztowym etc):

schema: 
    $ref: "#/definitions/myDataItem" 

Dla odsyłającym github emisyjnej:

https://github.com/swagger-api/swagger-codegen/issues/6745

Uwaga, problem został rozwiązany w wersji 2.3.0 i nowszej, najlepiej należy uaktualnić do tej wersji.

Powiązane problemy