Obecnie pracuję nad interfejsem API i chciałem tylko zebrać opinie na temat tego, gdzie powinno być najlepsze miejsce do przesłania klucza API. Wiem, że nie powinno to wchodzić w adres URL, pozostawia to nagłówek żądania lub treść wiadomości.
Jeśli wstawię go do nagłówka, mogę wymyślić ogólną metodę wyciągania go, która może być używana we wszystkich usługach, jednak specyfikacja, którą dostałem, chce tego w treści (tj. W ciągu JSON zawartym w obiekt serializowany w treści POST).
Odpowiedzi:
W HTTP jest na to
Authorization
nagłówek.Chociaż zwykle służy do podawania danych uwierzytelniających użytkowników, w przypadku interfejsu API może zawierać identyfikator klienta i odpowiedni klucz interfejsu API.
Istnieje kilka korzyści:
Wsparcie z różnych ram. Wiele platform oczekuje
Authorization
nagłówka w celu uwierzytelnienia. Nieużywanie go zmusi do napisania dodatkowego kodu, aby zasilić te frameworki wartościami niestandardowymi.Wsparcie z różnych narzędzi. Na przykład CURL.
Mniej „WTF, gdzie mogę znaleźć / umieścić ten klucz API ?!” od nowych programistów dołączających do zespołu (lub programistów projektujących nowych klientów dla Twojego interfejsu API).
Następnie można użyć definicji kodów stanu HTTP, takich jak
401 Unauthorized
, dla których :Przeniesienie go do treści żądania może szybko stać się bolesne. Większość frameworków i narzędzi nie sprawia, że dodawanie treści do żądania jest bardzo proste, co może utrudnić działanie interfejsu API.
źródło