Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG][typescript-fetch] Serilizer and deserializer methods should not be generated when generating only models #7040

Closed
5 tasks done
cervengoc opened this issue Jul 24, 2020 · 3 comments

Comments

@cervengoc
Copy link

Bug Report Checklist

  • Have you provided a full/minimal spec to reproduce the issue?
  • Have you validated the input using an OpenAPI validator (example)?
  • What's the version of OpenAPI Generator used?
  • Have you search for related issues/PRs?
  • What's the actual output vs expected output?
Description

We'd like to use openapi-generator to generate only models, because we already have a general purpose API client implementation. So we pass the --global-property models option to the core generator.

However, the generated models in each typescript file contain serilaization helper methods. The logic in them need the imports from ../runtime, which doesn't exist in this setup, so the generated code is broken. Also, when generating only models, serialization helpers are kind of pointless as the responsibility of the http client logic is on the consumer side.

openapi-generator version

4.3.1

OpenAPI declaration file content or url

I cannot provide a sample content at this point, but I think it's not too important in the context of this issue.

Command line used for generation
openapi-generator generate -i http://localhost:5000/swagger/v1.0/swagger.json -g typescript-fetch -o generated-sources/openapi --global-property models --additional-properties typescriptThreePlus=true
Steps to reproduce

Just include the --global-property models in the generator script.

Related issues/PRs

I've found no related issues.

Suggest a fix

I suggest handling this global option in the template and skip generating serializer/deserializer helper functions in this case, and also skip generating the related imports. So basically in this case only the typescript interface, and related interface imports should be in the generated model files in my opinion.

If anyone can point me to the right direction (source code point, retrieving global properties, etc.) I can try to put together a pull request myself.

@auto-labeler
Copy link

auto-labeler bot commented Jul 24, 2020

👍 Thanks for opening this issue!
🏷 I have applied any labels matching special text in your issue.

The team will review the labels and make any necessary changes.

@sarumont
Copy link
Contributor

sarumont commented Aug 4, 2020

@cervengoc You can use {#generateApis} in the templates to conditionally generate the serializer. See #7127 for an example where I'm using this.

@macjohnny
Copy link
Member

closed with #7127
thanks @sarumont

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants