I am trying to use the Swagger Editor to create a custom JSON/YAML for my API. Basically I want to describe a POST request to an endpoint with Accept
and Content-Type
headers and POST-data in the form of JSON as in the following template {"document": "Some text paragraph", "documentType": "text/plain"}
.
This is my swagger.yml file
swagger: '2.0'
info:
title: Random title
description: Blah blah
version: 1.2.3
host: endpoint.com
schemes:
- https
securityDefinitions:
basicAuth:
type: basic
description: HTTP Basic Authentication.
basePath: /v1
paths:
'/{pipelineID}':
parameters:
- $ref: '#/parameters/pipelineID'
post:
summary: Hello world
description: World hello
security:
- basicAuth: []
consumes:
- application/json
produces:
- application/json
tags:
- TextAnnotation
parameters:
- name: body
in: body
description: JSON
required: true
schema:
- $ref: "#/definitions/json"
- name: Accept
in: header
required: true
- name: Content-Type
in: header
required: true
responses:
'200':
description: OK
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal Server Error
parameters:
pipelineID:
name: pipelineID
description: Pipeline ID
in: path
type: string
required: true
definitions:
json:
- type: ServiceRequest
properties:
- "document":
- type: string
"documentType":
- type: string
Swagger editor's error:
Swagger Error
A deterministic version of a JSON Schema object.
Jump to line 59
Line 59 is where the definitions start, more specifically, json
What am I doing wrong?
I have found the bugger in this one. Here's the absolutely valid and working JSON
"definitions": {
"ServiceRequest": {
"type": "object",
"description": "Payload data to be sent with request. Format: JSON",
"required": [
"documentType",
"document"
],
"properties": {
"documentType": {
"type": "string",
"default": "text/plain"
},
"document": {
"type": "string",
"default": "Your text here"
}
}
}
}
which produces correct curl request.