Я работал на простом сервере API с использованием торнадо, и для всех запросов требуется параметр access_token . Я играл с curl и с удивлением обнаружил, что запросы DELETE и GET не извлекают это значение из тела запроса - они позволяют только передать этот параметр через строку запроса.
т.е. когда я делаю
curl -i -X DELETE -d access_token=1234 http://localhost:8888/
В методе delete моего веб-обработчика возвращается None:
self.get_argument('access_token', None)
Однако, когда я делаю
curl -i -X DELETE http://localhost:8888/?access_token=1234
Это дает "1234", как и ожидалось:
self.get_argument('access_token', None)
Я изучил источник торнадо и обнаружил, что тело анализируется только для запросов POST и PUT: https://github.com/facebook/tornado/blob/4b346bdde80c1e677ca0e235e04654f8d64b365c/tornado/httpserver.py#L258
Правильно ли игнорировать тело запроса для запросов GET, HEAD и DELETE, или это выбор сделан авторами торнадо?