0

小さなフレームワークで、php で実行される HTTP JSON API を使用しています。この API は、データベースの pgsql 関数のラッパーです。PHP フレームワークは、次のような方法で応答を返します。

{
  code: 200,
  data: []
} 

コードは、HTTP コード応答 (200、301、302 など) です。pgsql 関数は、独自のコード (エラーの場合は負の値、成功の場合は正の値)、メッセージ (コードの意味)、および結果データを返します。

{
  code: -1,
  message: 'Wrong data',
  data: []
}

したがって、API からの私のパッケージは次のとおりです。

{
  code: 200,
  data: {
    code: 1
    message: 'Succeed'
    data: []
  }
}

ぐちゃぐちゃじゃない?この API を要求するクライアント コードを記述するときに混乱が生じることがあります。ある種の API のパッケージを作成するための標準的なパターンがいくつかあるかもしれません。

4

2 に答える 2

1

あなたの API レイアウトは乱雑ではありません。Botond が示唆したように、実際にはかなり論理的です。私が行う唯一の変更は、ステータス コードを JSON データではなく HTTP ヘッダーに移動して、形式を少し減らすことです。これにより、成功した呼び出しとエラーを簡単に区別することもできます。

API が 200、201、403、404 の 4 つの異なるコードで応答できるとします。それぞれ、完了、未変更、禁止、未検出です。これを JSON 変数として渡す代わりに、HTTP 応答ヘッダーに簡単にバインドできます。値は既に存在し、十分に理解されているためです。これは、この質問のように、この特定のヘッダーを他の目的で使用していない限り、ステータス コードを提供する方法として広く受け入れられています。

于 2012-11-18T13:50:20.830 に答える
1

反復的に応答を読む必要があることを確認してください。JSON 応答を読み取ってから、データ フィールドに別のオブジェクト/配列があるかどうかを確認できます。

コードを評価し、200 を除くすべてのコードでエラー メッセージを表示する必要があります。

于 2012-11-18T13:49:52.180 に答える