Код, сгенерированный Swagger-codegen, имеет проблемы с маршрутизацией запросов с параметрами в пути

Я создал свое определение API с помощью swagger и сгенерировал код сервера с помощью инструментов Swagger в NodeJs. SwaggerRouter правильно обрабатывает все маршруты, кроме маршрутов с идентификатором. Например, такие маршруты, как

/v1/factoris/я /v1/factoris/создать

направлены на правильный контроллер, но вызовы с идентификаторами

/v1/factoris/{factoris_id}

возвращаются как недопустимые маршруты.

Есть идеи, что мне может не хватать?

Вот пример спецификаций чванства

/factoris/create:
post:
  tags:
  - "Factoris"
  summary: "Create New Factori"
  description: ""
  operationId: "factorisCreatePOST"
  parameters:
  - in: "body"
    name: "FactoriCreate"
    description: "Create a new factory"
    required: true
    schema:
      $ref: "#/definitions/FactoriCreate"
  responses:
    201:
      description: "A single factori object"
      schema:
        $ref: "#/definitions/inline_response_201"
    405:
      description: "Method not allowed"
      schema:
        $ref: "#/definitions/inline_response_405"
  security:
  - oauth2:
    - "admin"
  x-swagger-router-controller: "Factoris"

/factoris/{factori-id}:
get:
  tags:
  - "Factoris"
  summary: "Factori Information"
  description: ""
  operationId: "factorisFactori_idGET"
  parameters:
  - name: "factori-id"
    in: "path"
    description: "The factori identifier string"
    required: true
    type: "string"
  - name: "expand"
    in: "query"
    description: "Provide expanded information on Assemblies or Products or Users"
    required: true
    type: "string"
  responses:
    200:
      description: "A single factori object"
      schema:
        $ref: "#/definitions/inline_response_201"
    404:
      description: "Factori not found"
      schema:
        $ref: "#/definitions/inline_response_404"
  security:
  - oauth2:
    - "codeadmin"
  x-swagger-router-controller: "Factoris"

person Karthikraj Sriram    schedule 01.06.2017    source источник
comment
Пожалуйста, сообщите о проблеме через github.com/swagger-api/swagger-codegen/issues. /new, чтобы сообщество swagger codegen могло вам помочь.   -  person William Cheng    schedule 02.06.2017


Ответы (1)


После некоторых проб и ошибок я понял, что параметр пути не работает, если он имеет «-» (factori-id), поэтому изменение factori-id на factori_id исправило его. Но это все еще ошибка, поскольку параметр пути не может обрабатывать "-"

вот открытая проблема, созданная в Swagger-codegen https://github.com/swagger-api/swagger-codegen/issues/5763

person Karthikraj Sriram    schedule 02.06.2017