alpacahq / alpacahq/Alpaca-API

Endpoints should return 308 status rather than 301 on POST requests

Open
#134 2 comments 2 reactions 0 assignees View on GitHub
bug
Dominant language
No language data
Stars
173
Forks
17
PR merge metrics
No merged PRs in 30d

Description

Currently, the api issues a 301 response if a request arrives with a `http` scheme as opposed to an `https` scheme. The 301 status works fine for `GET` requests and forwards the request correctly, but for some user-agents a 301 status leads to a `POST` request being changed to a `GET` request.

A `308` response serves the same purpose as a `301`, but leaves the method of the request intact, meaning that the `POST` request is served correctly. Here's a cURL request that you can try out:
```curl
curl -L -X POST -H "apca-api-key-id: KEY_ID_HERE" -H "apca-api-secret-key: SECRET_KEY_HERE" -H "Content-Type: application/json" --data '{"symbol":"V","qty":"1","side":"buy","type":"market","time_in_force":"gtc"} http://paper-api.alpaca.markets/v2/orders'
```
Because of the 301 status, the POST method in that request gets clobbered into a GET method after the redirect and we get an error

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.