Odpowiedź serwera 201 Created
Co oznacza kod statusu 201
Kod statusu HTTP 201 (Created) wskazuje na pomyślne utworzenie zasobu. Używany jest w sytuacjach, gdy wykonane operacje prowadzą do stworzenia nowego obiektu na serwerze. Oznacza to, że żądanie zostało zrealizowane, a nowy zasób został stworzony w wyniku tego żądania.
Definicja i zastosowanie
Kod 201 jest najczęściej zwracany w odpowiedzi na żądania HTTP POST, które mają na celu utworzenie nowego zasobu. Odpowiedź z tym kodem często zawiera również lokalizację nowo utworzonego zasobu w nagłówku Location
.
Kontext zastosowania w API
- Podczas tworzenia nowych użytkowników w systemie.
- Podczas dodawania nowych postów na blogu.
- Podczas wprowadzania nowych produktów do bazy danych sklepu internetowego.
Praktyczne przykłady użycia kodu 201
Przykład pomyślnego utworzenia użytkownika
W przypadku rejestracji nowego użytkownika, żądanie do API może wyglądać następująco:
POST /api/users
Odpowiedź z serwera może zawierać kod 201, informując, że użytkownik został stworzony.
Przykład tworzenia nowego postu w blogu
Kiedy użytkownik publikuje nowy post, zapytanie może mieć postać:
POST /api/posts
W wyniku tego zapytania serwer może zwrócić kod 201, co oznacza, że post został dodany pomyślnie.
Przykład dodawania produktu w sklepie internetowym
Dodając nowy produkt, wysyłamy zapytanie:
POST /api/products
Odpowiedź z kodem 201 potwierdza, że produkt został pomyślnie dodany do bazy danych.
Kod błędu 201: kiedy może wystąpić i jak z nim pracować
Przyczyny, dla których może wystąpić błąd przy tworzeniu zasobu
- Złe lub niekompletne dane w żądaniu.
- Brak uprawnień do tworzenia zasobów.
- Problemy z serwerem lub bazą danych.
Jak poprawnie obsłużyć odpowiedź z kodem 201
Odpowiedź z kodem 201 powinna być przetworzona w sposób, który uwzględnia ewentualne dane zwrócone przez serwer, takie jak lokalizacja nowo stworzonego zasobu.
Naprawa problemów z tworzeniem zasobów w różnych językach programowania
Przykład na Python (użycie biblioteki requests)
Aby wysłać żądanie POST i obsłużyć odpowiedź, można użyć następującego kodu:
import requests
response = requests.post('https://api.example.com/users', json={'name': 'Jan Kowalski'})
if response.status_code == 201:
print('Użytkownik został stworzony:', response.json())
Przykład na JavaScript (użycie fetch API)
Aby wysłać żądanie POST, można wykorzystać fetch:
fetch('https://api.example.com/posts', {
method: 'POST',
body: JSON.stringify({ title: 'Nowy post', content: 'Treść posta' }),
headers: { 'Content-Type': 'application/json' }
})
.then(response => {
if (response.status === 201) {
return response.json();
}
})
.then(data => console.log('Post stworzony:', data));
Przykład na PHP (użycie cURL)
W PHP można użyć cURL do wysłania żądania:
$ch = curl_init('https://api.example.com/products');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['name' => 'Produkt', 'price' => 100]));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
$response = curl_exec($ch);
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == 201) {
echo 'Produkt został dodany';
}
curl_close($ch);
Obsługa pomyślnej odpowiedzi z kodem 201
Jak interpretować otrzymane dane
Odpowiedź z kodem 201 często zawiera dane nowo utworzonego zasobu lub przynajmniej jego identyfikator. Ważne jest, aby zrozumieć, co dokładnie zawiera odpowiedź i jak można to wykorzystać w dalszych operacjach.
Jak wykorzystać zwrócony zasób po utworzeniu
Po utworzeniu zasobu, można go używać w kolejnych operacjach, takich jak modyfikacja, usunięcie lub dalsze przetwarzanie. Warto zapisać identyfikator nowo utworzonego zasobu dla przyszłych odniesień.
Rekomendacje dotyczące pracy z kodem statusu 201
- Dokładnie waliduj dane przed wysłaniem żądania.
- Używaj odpowiednich nagłówków, aby informować serwer o typie danych.
- Testuj odpowiedzi API, aby upewnić się, że zwracane są prawidłowe kody statusu.
Operacja | Kod statusu | Opis |
---|---|---|
Tworzenie użytkownika | 201 | Użytkownik został pomyślnie stworzony. |
Tworzenie postu | 201 | Post został pomyślnie dodany. |
Dodawanie produktu | 201 | Produkt został pomyślnie dodany. |