2016-05-30 9 views
4

APIを持つRailsアプリがあります。私は全体の構造のためにhttp://jsonapi.orgに従うことを試みてきましたが、データなしで結果になるときのためのガイドラインは見つかりません。 I例えばこのようになりますエンドポイントを持っていない:APIデザイン - json_apiデータを返さないベストプラクティス

サーバーは、この日付の値に基づいてデータを更新したり、新しいしている場合 from_dateは、UNIXタイムスタンプである
https://[root]/api/apps/34/localized_strings?from_date=1330776000 

私はすべてのデータを返す、それはそこには更新を私はデータを返さない。そして、これを行うための最善の方法が何であるのだろうか。現在の結果は次のようになります。204は変更またはデータが存在しない場合は:

{ 
    "data": [] 
} 

が、代わりに「状態」のステータスを返すように良いかhttp://jsonapi.orgに基づいて、より従来のでしょうか?

答えて

0

According to the specificationを破壊するための一例である、空のコレクションを表す応答は次のようになります。

HTTP/1.1 200 OK 
Content-Type: application/vnd.api+json 

{ 
    "links": { 
    "self": "http://example.com/articles" 
    }, 
    "data": [] 
} 

サーバMUSTは、正常なfet応答オブジェクトのプライマリデータとして提供されるリソースオブジェクトを持つ個々のリソースまたはnull

HTTP/1.1 200 OK 
Content-Type: application/vnd.api+json 

{ 
    "links": { 
    "self": "http://example.com/articles/1/author" 
    }, 
    "data": null 
} 
+0

これは正しくありません。 「データなし」と仮定すると、OPは空のボディを意味し、http://stackoverflow.com/a/37521258/879854は正しいです:204ステータス、ボディ、コンテンツタイプなし。もしOPが、一次資源が必要ないことを意味するならば、データ要素は省略されてもよい。成功文書には、1つのデータ、エラー、またはメタが必要です。したがって、レスポンスボディは単にメタまたはメタ、おそらく他のものになる可能性があります – BF4

+0

これがリソースへのGETの場合、data:nullは意味があります: "リソースオブジェクトを持つ個々のリソースまたは応答ドキュメントのプライマリデータとして提供されたnullを取得する" – BF4

+0

このリクエストは条件付きgetと解釈される可能性があるので、レスポンスは空のボディになります。304 https://httpstatuses.com/304 – BF4

2

レールが空のコンテンツここ

と204ステータスコードを返しますので、ジャスト、head :no_contentを返すが

def destroy 
    # Destroy stuff 

    # Return 204, no content 
    head :no_content 
end 
関連する問題