Документ API в swagger, требуется проверка - PullRequest
0 голосов
/ 14 мая 2018

Наш проект должен открыть API для партнера, поэтому мы открыли только один API «Создать заказ». Я создал документ в swagger, чтобы сообщить им, как позвонить в нашу службу «Создать заказ».

После нескольких модификаций они все еще утверждают, что не могут создать успешный вызов API на основе моего документа.

Я вставляю свой документ API сюда, чтобы вы, ребята, судили, что не так с моим документом. Пожалуйста, дайте мне совет

{
  "swagger": "2.0",
  "info": {
      "description": "Core Platform",
      "version": "1.0.0",
      "title": "Core Platform"
  },
  "host": "test.apihost.com",
  "basePath": "/api/v1",
  "tags": [
      {
          "name": "order",
          "description": "Place an order"
      }
  ],
  "schemes": [
      "http"
  ],
  "paths": {
      "/order": {
          "post": {
              "tags": [
                  "order"
              ],
              "summary": "Create an order",
              "description": "",
              "operationId": "orderPost",
              "consumes": [
                  "application/json"
              ],
              "responses": {
                  "200": {
                      "description": "Success"
                  }
              },
              "parameters": [
                  {
                      "in": "body",
                      "name": "body",
                      "description": "Order object",
                      "required": true,
                      "schema": {
                          "$ref": "#/definitions/Order"
                      }
                  }
              ]
          }
      }
  },
  "definitions": {
      "Order": {
          "type": "object",
          "properties": {
              "retailer_id": {
                  "type": "integer",
                  "example": 123
              },
              "salesperson_id": {
                  "type": "integer",
                  "example": 42
              },
              "store_id": {
                  "type": "integer",
                  "example": 456
              },
              "line_items": {
                  "type": "object",
                  "example": [
                      {
                          "identifier": "bLCRZB9mV42nf",
                          "markup_rate": 0.3,
                          "markup_amount": 300,
                          "quantity": 1,
                          "retail_price": 1300,
                          "type": "Diamond",
                          "wholesale_price": 1000
                      },
                      {
                          "identifier": "zDWMZB9mV08zz",
                          "markup_rate": 0.2,
                          "markup_amount": 140,
                          "quantity": 1,
                          "retail_price": 840,
                          "type": "Setting",
                          "wholesale_price": 700
                      },
                      {
                          "currency": "USD",
                          "shipping": 0,
                          "subtotal": 2140,
                          "discount": 100,
                          "total": 2040,
                          "wholesale_subtotal": 1700
                      }
                  ]
              },
              "customer": {
                  "type": "object",
                  "example": {
                      "first_name": "Ranl",
                      "last_name": "Gao",
                      "email": "customer@gmail.com",
                      "phone": "888-555-1212"
                  }
              },
              "store": {
                  "type": "object",
                  "example": {
                      "company": "Store Name",
                      "address1": "123 Fake Street",
                      "address2": "123 Fake Street",
                      "phone": "777-777-7777",
                      "city": "Fakecity",
                      "province": "Shanghai",
                      "country": "China",
                      "postal_code": "K2P 1L4"
                  }
              },
              "shipping_address": {
                  "type": "object",
                  "example": {
                      "company": "Diamond Exchange",
                      "first_name": "Jane",
                      "last_name": "Smith",
                      "address1": "123 Fake Street",
                      "address2": "123 Fake Street",
                      "phone": "777-777-7777",
                      "city": "Fakecity",
                      "province": "Shanghai",
                      "country": "China",
                      "postal_code": "K2P 1L4"
                  }
              },
              "transactions": {
                  "type": "object",
                  "example": [
                      {
                          "type": "voucher",
                          "status": "issued",
                          "voucher_id": "xyzabc1234",
                          "amount": 1300
                      }
                  ]
              }
          }
      }
  }
}

1 Ответ

0 голосов
/ 14 мая 2018

Я не знаток чванства.

Может быть, вы должны определить все внутренние объекты отдельно в определениях и дать ссылки. Только «Заказ» присутствует в данный момент. Другие объекты, такие как line_items, customer и т. Д., Не определены.

Вы можете посмотреть образец здесь: https://github.com/swagger-api/swagger-codegen/blob/master/modules/swagger-codegen/src/test/resources/2_0/petstore.json

...