phoenix_swagger icon indicating copy to clipboard operation
phoenix_swagger copied to clipboard

How to send binary data as application/octet-stream content type?

Open sheshankkodam opened this issue 6 years ago • 4 comments

Problem statement

I'm unable to send binary data as application/octet-stream content type. Following is the information I have added to swagger_path

swagger_path :create do
    post "/data"
    tag "POST Data"
    summary "POST data"
    description "Send data"
    consumes "application/octet-stream"
    produces "application/octet-stream"
    parameter :Body, :binaryData, :file, "The file to upload", required: true
    response 200, "Ok"
    response 400, "Bad request"
    response 401, "Unauthorized"
  end

When I upload a file and execute the command, I'm seeing following error

[info] module=Plug.Logger POST /data/
[info] module=Plug.Logger Sent 406 in 631µs
[debug] module=Plug.Debugger ** (Phoenix.NotAcceptableError) no supported media type in
accept header.

Expected one of ["octet-stream"] but got the following formats:
* "application/octet-stream" with extensions: ["bin", "lha", "lzh", "exe", "class", "so", "dll", "img", 
    "iso"]

Here is the curl command which I would like to generate

curl -X POST \
http://localhost:8000/data -H 'Content-Type: application/octet-stream'  --data-binary @conn.dat

sheshankkodam avatar Nov 08 '18 19:11 sheshankkodam

To clarify, you are trying to upload from swagger-ui and seeing this error, but it works as expected when using CURL?

mbuhot avatar Nov 08 '18 23:11 mbuhot

@mbuhot Yes. You got it right.

sheshankkodam avatar Nov 08 '18 23:11 sheshankkodam

@mbuhot any update?

sheshankkodam avatar Nov 15 '18 18:11 sheshankkodam

@sheshankkodam I suspect the issue is with swagger-ui.

Maybe try forking the repo and updating the swagger-ui assets to the latest version.

mbuhot avatar Nov 15 '18 21:11 mbuhot