2015-05-16 3 views
6

Przeciążenie testu POST jest powszechną praktyką w przypadku interfejsów API usług REST, zwłaszcza w przypadku używania języka HTML jako typu multimediów.Co należy reklamować w polu Zezwól: nagłówek przeciążenia POST

Ale zastanawiam się, jaki jest właściwy sposób anonsowania przeciążonego testu POST w nagłówku Allow:.

Przy typowym zasobów, które mogą być, powiedzmy, czytać i aktualizowane, można by się spodziewać:

Allow: GET, HEAD, PUT 

Ale kiedy trzeba przeładowywać POST do umieszczania powinny nagłówek Allow: teraz wspomnieć, że POST jest akceptowana? Czy powinien przestać wspominać o PUT, jeśli oczekuję, że otrzymają tylko przeładowane żądania POST?

Odpowiedz

2

Zawsze patrzę na tego rodzaju pytania: behawioralnie, w odniesieniu do których klienci będą dbać o ten aspekt odpowiedzi, i co wpłynie na tych klientów.

W związku z tym, którzy klienci dbają o nagłówek Accept i jakie są tego konsekwencje dla tych klientów?

Po pierwsze są przeglądarki internetowe. Moja początkowa myśl była taka, że ​​jeśli używasz CORS, wartość nagłówka Accept może być istotna dla przeglądarki internetowej i może być konieczne dołączenie POST. Jednak tak naprawdę jest to Access-Control-Allow-Methods. O ile mi wiadomo, nagłówek Allow nie ma żadnego wpływu na zachowanie klientów przeglądarki.

Następnie są programowi klienci. W tych przypadkach nieprzeciążone metody są najczęściej tymi, które chcesz wyświetlić. (Np. Możesz mieć klienta generującego dokument, który sprawdza i wyświetla dozwolone metody, a także ma większy sens z punktu widzenia użytkownika.)

Są też użytkownicy, którzy wizualnie sprawdzają odpowiedzi interfejsu API. W takim przypadku prawdopodobnie wolałbym przeładowany zestaw metod, ponieważ jest bardziej informacyjny.


W skrócie - pewnie bym go z tylko wymieniając przeciążony zestaw metod, które są dozwolone, a nie w tym POST. Przeglądarka jest generalnie jedynym klientem, który będzie generował przeładowane żądania i nie jestem świadomy, że używa lub sprawdza nagłówek Accept w jakikolwiek sposób.

Powiązane problemy