Comments (3)
not sure if the
Pet
even needs to be generated
generatePet
as a protocol
I've just started reading OpenAPI to learn but it seems more safe to inline or protocol as an inheritance hierarchy cannot necessarily be assumed with allOf
.
I can think of cases where people want either of these generation options. We would have to make sure that entity
generation doesn't follow isMakingClassesFinal
.
# Apply to all objects
# default: inline
parentObjectGeneration: entity || protocol || inline
# Specify per type
# default: inline
parentObjectGeneration:
- Pet: protocol
- Human: entity
Edit: don't do that. We should think about how discriminators would create inheritances but I think only with protocols. https://swagger.io/docs/specification/data-models/inheritance-and-polymorphism/
from createapi.
I think it's a good idea to make this behavior the default. Looking at the example, if this I'm not sure if the Pet
even needs to be generated in this case (assuming it's only ever used in allOf
and never referenced as a separate entity).
from createapi.
I would suggest keeping this option because there are generally three types of ways to address it: composition, inheritance, and inlining all properties. CreateAPI covers everything but inheritance right now.
One more thing CreateAPI could do when inlining is used, is generate Pet
as a protocol and add conformance to it to the types like Dog
.
from createapi.
Related Issues (20)
- Schema component named `Request` generates ambiguous code HOT 4
- `AnyJSON` type included unexpectedly
- Adjust behaviour of `includeDefaultValues` to favour "correctness" by default HOT 1
- integer backed enums are stored as integer properties as opposed to enums HOT 1
- generated package depends on an old version of Get HOT 3
- Tagged type for IDs? HOT 2
- FR: Entity replace substring, instead of naming template HOT 1
- Equatable conformance HOT 1
- Parameters to be passed in headers are ignored during API generation
- Acronyms change property names without changing corresponding CodingKeys
- Deduplicate identical structs/classes
- Add option to separate GET from POST and PATCH requests and only include Decodable respectively Encodable conformance
- Option for treating non-optional enum with only one case as a static value
- `type` definition in OpenAPI spec is overridden by `format` value
- Is there a way to generate `CodingKeys`?
- How to wildcard rules in include and exclude paths
- Use `Swift Syntax`
- Make 'Request' type name configurable HOT 1
- Will OpenAPI schema v3.1.0 be supported?
- Documentation on how to use decoded entity fields HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from createapi.