Mikhail Voronin

Ручное тестирование API с помощью CURL

     

 System Administration

Выполнение HTTP-запросов c помощью CURL

Начнем с простых GET-запросов.
  1. $ curl http://www.domain.ru/api/v1/
  2. $ curl -X GET http://www.domain.ru/api/v1/
Теперь запросим ответ в виде JSON.
  1. $ curl -X GET -H "Content-Type: application/json" http://www.domain.ru/api/v1/
Попробуем послать PATCH запрос.
  1. $ curl -X PATCH -H "Content-Type: application/json" -d '{"status": "new"}' http://www.domain.ru/api/v1/books

Прохождение авторизации

Как правило, чтобы посылать POST, PUT, PATCH и DELETE запросы, нужно авторизоваться.
  1. $ curl -X PATCH -H "Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -H "Content-Type: application/json" -d '{"status": "new"}' http://www.domain.ru/api/v1/books
Если вы используете Django и oAuth2, то запрос токена будет выглядеть примерно так.
  1. $ curl -X POST -d "grant_type=password&username=superuser&password=123456" -u "xLJuHBcdgJHNuahvER9pgqSf6vcrlbkhCr75hTCZ:nv9gzOj0BMf2cdxoxsnYZuRYTK5QwpKWiZc7USuJpm11DNtSE9X6Ob9KaVTKaQqeyQZh4KF3oZS4IJ7o9n4amzfqKJnoL7a2tYQiWgtYPSQpY6VKFjEazcqSacqTx9z8" https://www.domain.ru/o/token/
  2. {"access_token": "jlLpKwzReB6maEnjuJrk2HxE4RHbiA", "token_type": "Bearer", "expires_in": 36000, "refresh_token": "DsDWz1LiSZ3bd7NVuLIp7Dkj6pbse1", "scope": "read write groups"}
  3. $ curl -H "Authorization: Bearer jlLpKwzReB6maEnjuJrk2HxE4RHbiA" http://127.0.0.1:8000/beers/
  4. []
Если вы используете базовую HTTP-авторизацию, то нужно использовать ключ --basic.
  1. $ curl --basic -u superuser:password -X POST -H "Content-Type: application/json" -d '{"status": "new"}' http://www.domain.ru/api/v1/books

Дополнительные материалы