Як выкарыстоўваць CURL для адпраўкі запытаў API

У гэтым артыкуле мы абмяркуем, як выкарыстоўваць curl для ўзаемадзеяння з RESTful API. curl гэта ўтыліта каманднага радка, якая можа выкарыстоўвацца для адпраўкі запытаў у API.

Запыты API складаюцца з чатырох розных частак:

  • Канчатковая кропка. Гэта URL, на які мы адпраўляем запыты.
  • Метад HTTP. Дзеянне, якое мы хочам здзейсніць. Найбольш распаўсюджаныя метады GET POST PUT DELETE і PATCH
  • Загалоўкі. Загалоўкі, якія мы хочам даслаць разам з нашым запытам, напрыклад загаловак аўтарызацыі.
  • Цела. Дадзеныя, якія мы хочам адправіць на API.


Сінтаксіс завітка

Сінтаксіс | | + _ | каманда:


curl

Варыянты, якія мы разгледзім у гэтым пасце:

  • curl [options] [URL...] альбо -X - Метад HTTP, які будзе выкарыстоўвацца
  • --request альбо -i - Уключыце загалоўкі адказаў
  • --include альбо -d - Дадзеныя, якія трэба адправіць у API
  • --data альбо -H - Любыя дадатковыя загалоўкі, якія трэба адправіць


HTTP АТРЫМАЦЬ

Для гэтага выкарыстоўваецца метад GET прынесці рэсурс з сервера. У --header метад GET з'яўляецца метадам па змаўчанні, таму нам не трэба яго ўказваць.


Прыклад:



curl

GET з параметрамі запыту

Мы таксама можам адпраўляць параметры запыту разам з curl https://jsonplaceholder.typicode.com/posts АТРЫМАЦЬ запыт.

Прыклад:

curl

HTTP POST

Для гэтага выкарыстоўваецца метад POST стварыць рэсурс на серверы.


Каб адправіць curl https://jsonplaceholder.typicode.com/posts?userId=5 Запыт POST мы выкарыстоўваем опцыю curl.

Даныя формы POST

Прыклад:

-X POST

Па змаўчанні curl -X POST -d 'userId=5&title=Post Title&body=Post content.' https://jsonplaceholder.typicode.com/posts выкарыстоўвае curl як Content-Type: application/x-www-form-urlencoded загаловак, таму нам не трэба ўказваць яго пры адпраўцы дадзеных формы.

Апублікаваць JSON

Каб Апублікаваць JSON па Content-Type мы павінны ўказаць curl як Content-Type.


Прыклад:

application/json

HTTP PUT

Для гэтага выкарыстоўваецца метад PUT абнавіць альбо замяніць рэсурс на серверы. Ён замяняе ўсе дадзеныя названага рэсурсу прадстаўленымі дадзенымі запыту.

нататка:Для запыту PUT мы павінны прадаставіць усе дадзеныя ў целе запыту.

Каб адправіць curl -X POST -H 'Content-Type: application/json'
-d '{'userId': 5, 'title': 'Post Title', 'body': 'Post content.'}'
https://jsonplaceholder.typicode.com/posts
Запыт PUT мы выкарыстоўваем опцыю curl.

Прыклад:


-X PUT

Прыведзены вышэй запыт PUT заменіць раней створаны пост 'Новым загалоўкам паведамлення' і 'Новым целам паведамлення'.



HTTP-патч

Для вырабу выкарыстоўваецца метад PATCH частковыя абнаўлення да рэсурсу на серверы.

нататка:Для запыту PATCH мы не павінны прадастаўляць усе дадзеныя. Мы адпраўляем толькі тыя дадзеныя, якія хочам абнавіць.

Каб адправіць curl -X PUT -H 'Content-Type: application/json'
-d '{'userId': 5, 'title': 'New Post Title', 'body': 'New post content.'}'
https://jsonplaceholder.typicode.com/posts/5
Запыт PATCH мы выкарыстоўваем опцыю curl.

Прыклад:


-X PATCH

Звярніце ўвагу, як мы адпраўляем цела толькі з 'Абноўленым зместам паведамлення', паколькі мы робім частковае абнаўленне.



HTTP DELETE

Метад DELETE выкарыстоўваецца для выдалення названага рэсурсу з сервера.

Каб адправіць curl -X PATCH -H 'Content-Type: application/json'
-d '{'userId': 5, 'body': 'Updated post content.'}'
https://jsonplaceholder.typicode.com/posts/5
Запыт DELETE мы выкарыстоўваем опцыю curl.

-X DELETEнататка:Метад DELETE не мае цела.

Аўтэнтыфікацыя

Часам канчатковая кропка API абмяжоўвае доступ і будзе абслугоўваць запыты толькі для аўтэнтыфікаваных і аўтарызаваных карыстальнікаў. Для гэтых запытаў мы павінны прадаставіць маркер доступу ў загалоўку запыту.

Каб адправіць curl -X DELETE https://jsonplaceholder.typicode.com/posts/5 загаловак, мы выкарыстоўваем: curl варыянт.

Наступны запыт адпраўляе запыт POST з маркерам на прад'яўніка ў загалоўку:

-H

Выснова

У гэтым паведамленні мы даведаліся, як адпраўляць HTTP-запыты (GET, POST, PUT, PATCH і DELETE) у API з дапамогай каманд curl.