GNU/Linux >> Znalost Linux >  >> Linux

Použití Curl k vytváření požadavků REST API

Aplikační programové rozhraní (API) je sada definic a protokolů, které umožňují softwarovým programům vzájemně komunikovat.

Termín REST znamená reprezentativní přenos stavu. Je to architektonický styl, který se skládá ze sady omezení, která se mají použít při vytváření webových služeb.

RESTful API je rozhraní API, které se řídí architekturou REST. Rozhraní REST API obvykle používají protokol HTTP k odesílání a načítání dat a odpovědí ve formátu JSON. Pomocí standardních metod HTTP můžete vytvářet, zobrazovat, aktualizovat nebo mazat prostředky prostřednictvím rozhraní API.

K testování a interakci s RESTful API můžete použít libovolnou knihovnu nebo nástroj, který umí odesílat požadavky HTTP.

Požadavky API se skládají ze čtyř různých částí:

  • Koncový bod. Toto je adresa URL, kterou klient používá ke komunikaci se serverem.
  • Metoda HTTP. Sděluje serveru, jakou akci chce klient provést. Nejběžnější metody jsou GET POST PUT DELETE a PATCH
  • Záhlaví. Používá se k předávání dalších informací mezi serverem a klientem, jako je autorizace.
  • Tělo. Data odeslaná na server.

V tomto článku budeme diskutovat o tom, jak používat curl pro interakci s RESTful API. curl je nástroj příkazového řádku pro přenos dat ze vzdáleného serveru nebo na něj. Ve výchozím nastavení se instaluje na macOS a většinu distribucí Linuxu.

Možnosti zvlnění #

Syntaxe pro curl příkaz je následující:

curl [options] [URL...]

Zde jsou možnosti, které použijeme při zadávání požadavků:

  • -X , --request – Metoda HTTP, která se má použít.
  • -i , --include – Zahrňte záhlaví odpovědí.
  • -d , --data - Data, která mají být odeslána.
  • -H , --header – Další záhlaví k odeslání.

HTTP GET #

Metoda GET vyžaduje konkrétní zdroj ze serveru.

GET je výchozí metoda při vytváření požadavků HTTP pomocí curl . Zde je příklad vytvoření požadavku GET na JSONPlaceholderAPI na reprezentaci JSON všech příspěvků:

curl https://jsonplaceholder.typicode.com/posts

K filtrování výsledků použijte parametry dotazu:

curl https://jsonplaceholder.typicode.com/posts?userId=1

Příspěvek HTTP č.

Metoda POST se používá k vytvoření prostředku na serveru. Pokud zdroj existuje, je přepsán.

Následující příkaz vytvoří požadavek POST pomocí dat zadaných pomocí -d možnost:

curl -X POST -d "userId=5&title=Hello World&body=Post body." https://jsonplaceholder.typicode.com/posts

Typ těla požadavku je určen pomocí Content-Type záhlaví. Ve výchozím nastavení, když toto záhlaví není uvedeno curl používá Content-Type: application/x-www-form-urlencoded .

Chcete-li odeslat data ve formátu JSON, nastavte typ těla na application/json :

curl -X POST -H "Content-Type: application/json" \    -d '{"userId": 5, "title": "Hello World", "body": "Post body."}' \    https://jsonplaceholder.typicode.com/posts

HTTP PUT #

Metoda PUT se používá k aktualizaci nebo nahrazení prostředku na serveru. Nahradí všechna data zadaného zdroje daty požadavku.

curl -X PUT -d "userId=5&title=Hello World&body=Post body." https://jsonplaceholder.typicode.com/posts/5

OPRAVA HTTP č.

Metoda PUT se používá k provádění částečných aktualizací prostředku na serveru.

curl -X PUT -d "title=Hello Universe" https://jsonplaceholder.typicode.com/posts/5

HTTP DELETE #

Metoda DELETE odebere zadaný prostředek ze serveru.

curl -X DELETE https://jsonplaceholder.typicode.com/posts/5

Ověření #

Pokud koncový bod API vyžaduje ověření, budete muset získat přístupový klíč. Jinak server API odpoví zprávou s odpovědí „Přístup zakázán“ nebo „Neoprávněný“.

Proces získání přístupového klíče závisí na API, které používáte. Jakmile budete mít svůj přístupový token, můžete jej odeslat v záhlaví:

curl -X GET -H "Authorization: Bearer {ACCESS_TOKEN}" "https://api.server.io/posts"

Závěr č.

Ukázali jsme vám, jak používat curl zadávat požadavky na testovací rozhraní API. Další informace o curl , navštivte stránku dokumentace Curl.

Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.


Linux
  1. Automatizace webových požadavků pomocí Curl?

  2. Kontrola stavu webové stránky pomocí Curl?

  3. Použití výstupu předchozích příkazů v bash

  1. Použití WGET ke spuštění cronjob PHP

  2. provádění požadavků HTTP pomocí cURL (pomocí PROXY)

  3. Proveďte https požadavek pomocí socketů na linuxu

  1. Jak analyzovat hlavičky HTTP pomocí Bash?

  2. Použití klientského certifikátu v příkazu Curl

  3. Pomocí indexu zrychlit grep?