5

Pracuję nad usługą sieci Web ASP.Net Web API 2 RESTful służącą do importowania i eksportowania danych z mojej bazy danych. Dla mojej metody eksportu klient ma kilka opcji eksportu danych w różnych formatach (np. Pdf, xml itp.). Próbuję określić najlepszy projekt mojego interfejsu dla klienta, aby poinformować serwis, w jakim formacie udostępnić dane.Żądanie GET - pożądany format odpowiedzi w parametrze lub nagłówek Accept

O ile mi wiadomo, moje 2 najlepsze opcje to użycie nagłówka Accept z typem multimediów ciągi lub dodanie parametru do metody, w której klient może podać parametr formatu w ciągu zapytania. Jeśli zdecyduję się użyć nagłówka Accept, może to wymagać użycia niestandardowych ciągów typu mediów.

Wydaje mi się, że użycie nagłówka Accept byłoby bardziej zgodne ze standardami HTTP i praktykami RESTful, ale użycie parametru formatu w ciągu zapytania byłoby łatwiejsze do wdrożenia po stronie usługi i dla klienta.

Czy ktoś może wyjaśnić, jakie są zalety lub wady tych 2 wzorów?

Odpowiedz

3

Oba podejścia są ważnymi sposobami uzyskania tego samego wyniku. REST nie jest specem do implementacji, więc niezależnie od tego, jaka reakcja zostanie tutaj uzyskana, prawdopodobnie będzie to czyjś preferowany sposób robienia tego lub jak oni rozumieją REST.

Twoje pytanie jest podobne do tego od programistów. SE: Tradeoffs between content negotiation via Accept header versus extensions. Zauważ również, że pliki pdf, xml itp mają standardowe rozpoznane typy MIME, więc nie widzę potrzeby stosowania niestandardowych ciągów typu mediów.

Mimo to moim preferowanym sposobem uzyskania raportu byłby ciąg zapytania o wartości ?format=pdf. Idź z tym, co jest łatwiejsze, łatwiejsze w utrzymaniu, czyściejsze itp.