Using additionalProperties
is the proper way to describe hashmap with OpenAPI (fka. Swagger) Specification but Swagger UI do not render them for now.
The issue is tracked here https://github.com/swagger-api/swagger-ui/issues/1248
Meanwhile you can use this trick: define a non required property (default
in the example below) of the same type of the map’s objects and give some hint within the description:
swagger: "2.0"
info:
version: 1.0.0
title: Hashmap
paths: {}
definitions:
MapItem:
properties:
firstname:
type: string
lastname:
type: string
Map:
description: a (key, MapItem) map. `default`is an example key
properties:
default:
$ref: '#/definitions/MapItem'
additionalProperties:
$ref: '#/definitions/MapItem'
This description does not modify API contract and improves documentation.