Skip to content

[All generators] Cannot generate when allOf property is in /paths #6519

@tagliala

Description

@tagliala
Description

Cannot generate documentation when the allOf property is contained in a schema inside /paths

Swagger-codegen version

2.2.3

Swagger declaration file content or url
swagger: "2.0"
info:
  description: "allOf issue demonstration"
  version: "1.0.0"
  title: "Swagger allOf regression"
host: "example.com"
schemes:
- "http"
paths:
  /rides:
    post:
      tags:
      - "rides"
      summary: "Add a new ride"
      description: ""
      operationId: "addRide"
      parameters:
      - in: "body"
        name: "body"
        description: "Ride object"
        required: true
        schema:
          allOf:
            - $ref: "#/definitions/Ride"
      responses:
        405:
          description: "Invalid input"
definitions:
  Ride:
    type: "object"
    required:
    - "from"
    - "to"
    properties:
      id:
        type: "integer"
        format: "int64"
      from:
        type: "string"
        example: "London"
      to:
        type: "string"
        example: "Manchester"
Command line used for generation
$ swagger-codegen generate -i swagger.yaml  -l html2
Steps to reproduce

Run the above command line with the provided configuration file

[main] INFO io.swagger.parser.Swagger20Parser - reading from swagger.yaml
Exception in thread "main" java.lang.RuntimeException: Could not process operation:
  Tag: rides
  Operation: addRide
  Resource: post /rides
  Definitions: {Ride=io.swagger.models.ModelImpl@c32f7a5d}
  Exception: null
	at io.swagger.codegen.DefaultGenerator.processOperation(DefaultGenerator.java:861)
	at io.swagger.codegen.DefaultGenerator.processPaths(DefaultGenerator.java:764)
	at io.swagger.codegen.DefaultGenerator.generateApis(DefaultGenerator.java:388)
	at io.swagger.codegen.DefaultGenerator.generate(DefaultGenerator.java:700)
	at io.swagger.codegen.cmd.Generate.run(Generate.java:285)
	at io.swagger.codegen.SwaggerCodegen.main(SwaggerCodegen.java:35)
Caused by: java.lang.NullPointerException
	at io.swagger.codegen.DefaultCodegen.isDataTypeBinary(DefaultCodegen.java:2682)
	at io.swagger.codegen.DefaultCodegen.fromParameter(DefaultCodegen.java:2633)
	at io.swagger.codegen.DefaultCodegen.fromOperation(DefaultCodegen.java:2191)
	at io.swagger.codegen.languages.StaticHtml2Generator.fromOperation(StaticHtml2Generator.java:158)
	at io.swagger.codegen.DefaultGenerator.processOperation(DefaultGenerator.java:808)
	... 5 more
Related issues/PRs

swagger-api/swagger-editor#1497

Suggest a fix/enhancement

Please take a look at swagger-api/swagger-editor#1497, there is plenty of information.

Problem is in the allOf property

Lines generating the issue are:

          schema:
            allOf:
              - $ref: '#/definitions/Ride'

If you remove allOf:, as in:

          schema:
            $ref: '#/definitions/Ride'

documentation would be generated. This was working with swagger editor 3.1.6, but reference resolution changed and now it doesn't work anymore

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions