swagger-api / swagger-api/swagger-codegen

Swagger-codegen generated code having issues Routing requests with parameters in path

Open
#5,763 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Mustache
Stars
17.8k
Forks
6k
PR merge metrics
No merged PRs in 30d

Description

Description

I created my api definition using swagger and have generated the server code using Swagger-tools in NodeJs. The SwaggerRouter handles all routes properly excepts the routes with ID. For example , routes like

/v1/factoris/self 
/v1/factoris/create

are directed to the right controller but calls with IDs

/v1/factoris/{factoris_id}

are returned as invalid routes.

Any idea what I might be missing ?

Here is a sample of the swagger specs

Swagger-codegen version

Swagger 2.0
Swagger-editor - 2.10.4

Swagger declaration file content or url
/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"

https://stackoverflow.com/questions/44318120/swagger-codegen-generated-code-having-issues-routing-requests-with-parameters-in

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the request against the SwaggerRouter using the supplied Swagger 2.0 declaration, comparing the working static routes with /factoris/{factori-id}. Trace how the generated server routes path parameters to the Factoris controller and verify that requests with an ID reach the expected controller without breaking the existing routes.

Written by the indexing model from the issue text.

Assessment

Tech stack
nodejs
Domain
api, backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.