cancel
Showing results for 
Search instead for 
Did you mean: 

how to have different required fields for the create (put) and update api?

Highlighted
Occasional Visitor

how to have different required fields for the create (put) and update api?

I have a schema defined say star which has name as required field. But i want this field to be required in create body request but not in update body request. What is the correct way to do without redundant code?

Star:
title: Star
description: star found
required:
- name
properties:
id:
description: the id for the star
type: string
format: uuid4
readOnly: true
x-go-name: ID
name:
description: name of the star
type: string
x-go-name: Star

Tags (2)
1 REPLY 1
Highlighted
Moderator

Re: how to have different required fields for the create (put) and update api?

Define the base "Star" model where the "name" property is optional. Then define another model, say, "NewStar", as allOf of the base model and the required list. Use the base "Star" model in the update request and the "NewStar" model in the create request.

Star:
  type: object
  properties:
    ...
NewStar:
  allOf:
    - $ref: '#/definitions/Star'   # or '#/components/schemas/Star' if you use OAS3
    - required:
        - name

Helen Kosova
SmartBear Technical Writer
________________________

 Join SmartBear Connect next April in Boston to meet with software development, API and testing experts from around the world! Get your ticket today!