Hackernoon logoDefining Types: Using allOf in Swagger JSON by@heypran

Defining Types: Using allOf in Swagger JSON

Pran B. Hacker Noon profile picture

@heypranPran B.

Curiosity killed the Schrodinger's cat? or did it?

Image by Devanath from Pixabay 

This is a very short article just to give a highlight on how to use allOf with swagger in JSON, although its not a big deal but I could not really find a good example while searching for it.

So here you go,

OpenAPI lets you combine and extend model definitions using the allOf keyword. allOf takes an array of object definitions that are used for independent validation but together compose a single object. To be valid against allOf, the data provided by the client must be valid against all of the given subschemas.  - source

So if you want to use allOf within an array you may do it like this,

 "V1ListArticle": {
        "type": "array",
        "description": "List of articles",
        "items": {
          "allOf": [
              "$ref": "#/components/schemas/AnyArticleSchema"
              "type": "object",
              "properties": {
                "articleRank": {
                  "type": "number"

In the above example we have extended an already defined schema type 'AnyArticleSchema', by adding one more property 'articleRank' to it.

You may use these in scenarios where you don't want to repeat the whole schema and existing schema (in this case AnyArticleSchema) is already being used in lot of places ( i.e. has dependency). So you may want to extend the schema for your new use case by adding a new property.

Cheers! Happy Swagging!


Join Hacker Noon

Create your free account to unlock your custom reading experience.