New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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: