[英]How to design REST API for export endpoint?
我正在設計REST API並遇到設計問題。 我有alerts
,我希望用戶能夠export
到少數文件格式之一。 所以我們已經開始使用export
操作/命令,感覺就像RPC而不是REST。
而且,我不想假設默認的文件格式。 相反,我想要求它提供。 我不知道如何設計API來做到這一點,如果沒有提供所需的參數,我也不知道要返回什么響應代碼。
所以這是我的第一次破解:
POST /api/alerts/export?format=csv
要么
POST /api/alerts/export/csv
這個端點是否按照您的方式設置? 它是否以正確的方式設置以要求文件格式? 如果未提供所需的文件格式,返回的正確狀態代碼是什么?
謝謝。
實際上,您應該考慮使用HTTP內容協商(或CONNEG)來執行此操作。 這利用了Accept
標頭(請參閱HTTP規范: http : //www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1 ),該標頭指定響應的預期媒體類型。
例如,對於CSV,您可以使用類似的東西:
GET /api/alerts
Accept: text/csv
如果要指定其他提示(文件名,...),服務器可以返回Content-Disposition
標頭(請參閱HTTP規范: http : //www.w3.org/Protocols/rfc2616/rfc2616-sec19.html #sec19.5.1 )在響應中,如下所述:
GET /api/alerts
Accept: text/csv
HTTP/1.1 200 OK
Content-Disposition: attachment; filename="alerts.csv"
(...)
希望它對你有幫助,蒂埃里
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.