Description
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