This repository was archived by the owner on Nov 8, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 18
Deal with string/binary and string/byte top-level schemas #269
Comments
honzajavorek
referenced
this issue
in apiaryio/dredd
Jul 24, 2018
Just a note, this is not an issue in request bodies. Following works, for some reason: paths:
/image.png:
put:
parameters:
- name: binary
in: body
required: true
schema:
type: string
format: binary |
honzajavorek
referenced
this issue
in apiaryio/dredd
Jul 24, 2018
I think there are two steps we should take to resolve this issue:
|
honzajavorek
referenced
this issue
in apiaryio/dredd
Nov 29, 2018
Requires fury-adapter-swagger@0.19.2, solves https://github.com/apiaryio/fury-adapter-swagger/issues/193 for Dredd
honzajavorek
referenced
this issue
in apiaryio/dredd
Nov 29, 2018
Requires fury-adapter-swagger@0.19.2, solves https://github.com/apiaryio/fury-adapter-swagger/issues/193 for Dredd
honzajavorek
referenced
this issue
in apiaryio/dredd
Nov 29, 2018
Requires fury-adapter-swagger@0.19.2, solves https://github.com/apiaryio/fury-adapter-swagger/issues/193 for Dredd
honzajavorek
referenced
this issue
in apiaryio/dredd
Nov 29, 2018
Requires fury-adapter-swagger@0.19.2, solves https://github.com/apiaryio/fury-adapter-swagger/issues/193 for Dredd
@honzajavorek I think thats right. |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Swagger allows to specify request or response body schemas with type/format
string
/byte
andstring
/binary
. The intention of the spec writers is probably to allow describing pure binary and base64 payloads, but in the realm of JSON Schema, such description implies a valid JSON string (i.e."blah blah"
) with its contents being of a particular format. Currently we treat Swagger schemas as JSON Schemas and there are compatibility issues caused by whatformat
values are supported - https://github.com/apiaryio/fury-adapter-swagger/issues/99 - but this is slightly different, because I think nobody really meant there should be payloads like this:"âPNGIHDRdlú±9bKGDˇˇˇ†ΩßìpHYs..."
(It was supposed to be a beginning of a PNG image in binary, but I had to delete some bytes so GitHub wouldn't break the code block 😬)
Instead, the intention was probably that following Swagger describes a
/binary
route responding with some raw bytes in the body:Even if subsequent tooling ignores the
format
description, it is lead by the schema to assume the payload should be a valid JSON string.The Swagger adapter should somehow deal with the situation, as it is Swagger-specific and ruins the agnosticism of the subsequent tooling. One approach, probably the easiest, would be to drop top level
string
/binary
andstring
/bytes
schemas and leave the body description without any assertions for the subsequent tooling. Nested schemas of such types/formats are okay, as the nested nature already implies a structure like JSON.The text was updated successfully, but these errors were encountered: