swagger-api / swagger-api/swagger-codegen

Unrecognized token 'openapi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')

Open
#11,856 0 comments 6 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

Using Micronaut application the swagger specification is generated as YAML file and can be access using http://localhost:8080/swagger/fete-bird-api-gateway-0.0.yml

image

https://micronaut-projects.github.io/micronaut-openapi/latest/guide/

I have downloaded the swagger-codegen-cli-2.4.27.jar and swagger-codegen-cli-3.0.34.jar and running the below command

swagger-codegen-cli-2.4.27.jar
java -jar tools/swagger-codegen-cli-2.4.27.jar generate \
  -i http://localhost:8080/swagger/fete-bird-api-gateway-0.0.yml \
  -l typescript-angular \
  -o /libs/service/src/lib/swagger-specification \
  -Dmodels -DmodelDocs=false \
  -c tools/angular-swagger-option.json

Exception from the above version

[main] INFO io.swagger.parser.Swagger20Parser - reading from http://localhost:8080/swagger/fete-bird-api-gateway-0.0.yml
[main] INFO io.swagger.parser.Swagger20Parser - reading from http://localhost:8080/swagger/fete-bird-api-gateway-0.0.yml
[main] ERROR io.swagger.parser.SwaggerCompatConverter - failed to read resource listing
com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'openapi': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
 at [Source: (StringReader); line: 1, column: 8]
	at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:2391)
	at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:745)
	at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._reportInvalidToken(ReaderBasedJsonParser.java:2961)
	at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddValue(ReaderBasedJsonParser.java:2002)
	at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:802)
	at com.fasterxml.jackson.databind.ObjectMapper._readTreeAndClose(ObjectMapper.java:4703)
	at com.fasterxml.jackson.databind.ObjectMapper.readTree(ObjectMapper.java:3076)
	at io.swagger.parser.SwaggerCompatConverter.readResourceListing(SwaggerCompatConverter.java:193)
	at io.swagger.parser.SwaggerCompatConverter.read(SwaggerCompatConverter.java:122)
	at io.swagger.parser.SwaggerParser.read(SwaggerParser.java:105)
	at io.swagger.codegen.config.CodegenConfigurator.toClientOptInput(CodegenConfigurator.java:450)
	at io.swagger.codegen.cmd.Generate.run(Generate.java:305)
	at io.swagger.codegen.SwaggerCodegen.main(SwaggerCodegen.java:35)
[main] WARN io.swagger.codegen.ignore.CodegenIgnoreProcessor - Output directory does not exist, or is inaccessible. No file (.swagger-codegen-ignore) will be evaluated.
Exception in thread "main" java.lang.RuntimeException: missing swagger input or config!
	at io.swagger.codegen.DefaultGenerator.generate(DefaultGenerator.java:766)
	at io.swagger.codegen.cmd.Generate.run(Generate.java:307)
	at io.swagger.codegen.SwaggerCodegen.main(SwaggerCodegen.java:35)
swagger-codegen-cli-3.0.34.jar
java -jar tools/swagger-codegen-cli-2.4.27.jar generate \
  -i http://localhost:8080/swagger/fete-bird-api-gateway-0.0.yml \
  -l typescript-angular \
  -o /libs/service/src/lib/swagger-specification \
  -Dmodels -DmodelDocs=false \
  -c tools/angular-swagger-option.json

Exception

11:23:33.131 [Thread-0] WARN  i.s.c.v.i.CodegenIgnoreProcessor - Output directory does not exist, or is inaccessible. No file (.swagger-codegen-ignore) will be evaluated.
11:23:33.189 [Thread-0] WARN  i.s.c.v.g.t.AbstractTypeScriptClientCodegen - Object (model name matches existing language type) cannot be used as a model name. Renamed to ModelObject
11:23:33.189 [Thread-0] WARN  i.s.c.v.g.t.AbstractTypeScriptClientCodegen - Object (model name matches existing language type) cannot be used as a model name. Renamed to ModelObject
11:23:33.189 [Thread-0] WARN  i.s.c.v.g.t.AbstractTypeScriptClientCodegen - Object (model name matches existing language type) cannot be used as a model name. Renamed to ModelObject
11:23:33.189 [Thread-0] WARN  i.s.c.v.g.t.AbstractTypeScriptClientCodegen - Object (model name matches existing language type) cannot be used as a model name. Renamed to ModelObject
11:23:33.189 [Thread-0] WARN  i.s.c.v.g.t.AbstractTypeScriptClientCodegen - Object (model name matches existing language type) cannot be used as a model name. Renamed to ModelObject
11:23:33.189 [Thread-0] WARN  i.s.c.v.g.t.AbstractTypeScriptClientCodegen - Object (model name matches existing language type) cannot be used as a model name. Renamed to ModelObject
11:23:33.189 [Thread-0] WARN  i.s.c.v.g.t.AbstractTypeScriptClientCodegen - Object (model name matches existing language type) cannot be used as a model name. Renamed to ModelObject
11:23:33.189 [Thread-0] WARN  i.s.c.v.g.t.AbstractTypeScriptClientCodegen - Object (model name matches existing language type) cannot be used as a model name. Renamed to ModelObject
11:23:33.189 [Thread-0] WARN  i.s.c.v.g.t.AbstractTypeScriptClientCodegen - Object (model name matches existing language type) cannot be used as a model name. Renamed to ModelObject
11:23:33.190 [Thread-0] WARN  i.s.c.v.g.t.AbstractTypeScriptClientCodegen - Object (model name matches existing language type) cannot be used as a model name. Renamed to ModelObject
11:23:33.190 [Thread-0] WARN  i.s.c.v.g.t.AbstractTypeScriptClientCodegen - Object (model name matches existing language type) cannot be used as a model name. Renamed to ModelObject
11:23:33.204 [Thread-0] WARN  i.s.c.v.g.t.AbstractTypeScriptClientCodegen - Object (model name matches existing language type) cannot be used as a model name. Renamed to ModelObject
11:23:33.204 [Thread-0] WARN  i.s.c.v.g.t.AbstractTypeScriptClientCodegen - Object (model name matches existing language type) cannot be used as a model name. Renamed to ModelObject
11:23:33.204 [Thread-0] WARN  i.s.c.v.g.t.AbstractTypeScriptClientCodegen - Object (model name matches existing language type) cannot be used as a model name. Renamed to ModelObject
11:23:33.204 [Thread-0] WARN  i.s.c.v.g.t.AbstractTypeScriptClientCodegen - Object (model name matches existing language type) cannot be used as a model name. Renamed to ModelObject
11:23:33.204 [Thread-0] WARN  i.s.c.v.g.t.AbstractTypeScriptClientCodegen - Object (model name matches existing language type) cannot be used as a model name. Renamed to ModelObject
11:23:33.204 [Thread-0] WARN  i.s.c.v.g.t.AbstractTypeScriptClientCodegen - Object (model name matches existing language type) cannot be used as a model name. Renamed to ModelObject
11:23:33.204 [Thread-0] WARN  i.s.c.v.g.t.AbstractTypeScriptClientCodegen - Object (model name matches existing language type) cannot be used as a model name. Renamed to ModelObject
11:23:33.257 [Thread-0] INFO  i.s.codegen.v3.AbstractGenerator - writing file /libs/service/src/lib/swagger-specification/model/activeDates.ts
Exception in thread "Thread-0" java.lang.RuntimeException: Could not generate model 'ActiveDates'
	at io.swagger.codegen.v3.DefaultGenerator.generateModels(DefaultGenerator.java:451)
	at io.swagger.codegen.v3.DefaultGenerator.generate(DefaultGenerator.java:782)
	at io.swagger.codegen.v3.cli.cmd.Generate.run(Generate.java:388)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.io.FileNotFoundException: /libs/service/src/lib/swagger-specification/model/activeDates.ts (No such file or directory)
	at java.base/java.io.FileOutputStream.open0(Native Method)
	at java.base/java.io.FileOutputStream.open(FileOutputStream.java:293)
	at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:235)
	at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:184)
	at io.swagger.codegen.v3.AbstractGenerator.writeToFile(AbstractGenerator.java:32)
	at io.swagger.codegen.v3.DefaultGenerator.processTemplateToFile(DefaultGenerator.java:799)
	at io.swagger.codegen.v3.DefaultGenerator.generateModels(DefaultGenerator.java:438)

Using Oracle Open JDK 17.

Can we create swagger specification for angular application using the YAML file? because micronaut generates YAML for swagger specification

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 comparing the two swagger-codegen-cli commands, the Micronaut YAML URL, and tools/angular-swagger-option.json. Reproduce the parser error with 2.4.27 and the output-path failure with 3.0.34 using a writable output directory. Done means documenting which failure is caused by the input format and which by the output path, with a confirmed Angular generation result.

Written by the indexing model from the issue text.

Assessment

Tech stack
angular, java, typescript
Domain
api, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.