5

Sto lavorando su un'API Web ASP 2 Web service RESTful per l'importazione e l'esportazione di dati dal mio database. Per il mio metodo di esportazione, il client ha diverse opzioni per esportare i dati in diversi formati (ad esempio pdf, xml, ecc.). Sto cercando di determinare il miglior design per la mia interfaccia affinché il cliente informi il servizio su quale formato fornire i dati.Richiesta GET - formato di risposta desiderato nel parametro o intestazione Accept

Per quanto ne so, le mie 2 migliori opzioni sono usare l'intestazione Accept con tipo di supporto stringhe o aggiunta di un parametro al metodo in cui il client può fornire il parametro format nella stringa di query. Se scelgo di utilizzare l'intestazione Accept, ciò può implicare l'utilizzo di stringhe di tipo di media personalizzate.

Mi sembra che l'utilizzo dell'intestazione Accept sia più in linea con gli standard HTTP e le pratiche RESTful, ma l'utilizzo del parametro format nella stringa di query sarebbe più semplice da implementare sul lato del servizio e per il client.

Qualcuno può spiegare quali sono alcuni dei vantaggi o degli svantaggi di questi 2 design?

risposta

3

Entrambi i metodi sono validi per ottenere lo stesso risultato. REST non è una specifica da implementare, quindi qualsiasi risposta che si ottiene qui è probabilmente il modo preferito di qualcuno per farlo o come hanno capito REST.

La tua domanda è simile a quella di programmers.SE: Tradeoffs between content negotiation via Accept header versus extensions. Si noti inoltre che pdf, xml, ecc. Hanno tipi mime riconosciuti standard, quindi non vedo la necessità di stringhe di tipi di supporti personalizzati.

Detto questo, il mio modo preferito di ottenere il rapporto sarebbe avere una stringa di query ?format=pdf. Vai con tutto ciò che è più facile, più manutenibile, più pulito, ecc.