How to make an "all optional" schema from a schema in OpenAPI 3
SOLVED- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
How to make an "all optional" schema from a schema in OpenAPI 3
Suppose I have an OpenAPI 3.0 schema like this:
components: schemas: Device: type: object properties: id: type: string readOnly: true name: type: string owner: type: string required: - id - name - owner
This works fine for a POST request's body. However, if I want to use this schema for a PATCH request's body, it wouldn't make sense as now the request body is required to have all properties in it. So, my question is, is it possible to make a schema that inherits from this schema, but with all required properties optional?
Solved! Go to Solution.
- Labels:
-
Swagger Core
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
While looking for same answer I've found your post. Did you fond an answer what's the best practice to define PATCH?
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Required properties of a base schema cannot be made optional. In other words, you can only add constraints but not remove them.
You need to do it the other way round - define a base schema with optional properties, then "inherit" from that schema and mark the properties in question as required.
components: schemas: # Schema for PATCH BaseDevice: type: object properties: id: type: string readOnly: true name: type: string owner: type: string # Schema for POST Device: allOf: - $ref: '#/components/schemas/BaseDevice' required: - id - name - owner
Helen Kosova
SmartBear Documentation Team Lead
________________________
Did my reply answer your question? Give Kudos or Accept it as a Solution to help others. ⬇️⬇️⬇️
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Great, thank you.
