web-dev-qa-db-ja.com

RESTを使用してPHP AP​​Iを作成する

2つの値が渡された場合、JSON形式で応答を取得する必要がある最初のAPIを作成しています。番号はPOSTによってパラメーターとして渡されます。 cURLまたは使用可能なPOSTメソッドを使用します。

これは非常に基本的なものですが、ベストプラクティスを知りたいと思います。APIはモデルコントローラーごとに作成する必要があります。単なるPHPではありません。

多くのREST AP​​IチュートリアルをGoogleで検索しました。彼らは良かったと私はそれについていくつかの知識を獲得しました。

しかし、コードのサンプルモデルを取得して、それを参照して独自のコードを作成できるようにしたいと考えています。もちろん、実際のREST AP​​Iを作成する標準的なプラクティスでそのサンプルを作成します。

あなたが私に何を試みたのかと聞かれたら、初心者として本当に楽しいでしょう、私にできることはこれだけです:

$num1 = $_REQUEST['num1'];
$num2 = $_REQUEST['num2'];

$total = $num1 + $num2;
echo json_encode($total);

もちろん、これを決してAPIと呼ぶことはできませんが、それでもです。これにPOST応答を与えると、REST AP​​Iからの応答がJSONとして必要になります。標準的な応答を得るために、RESTコンソールでもテストできるはずです。

非常に基本的でありながら標準のRESTful APIを提供してください。

49
Piya

あなたの例では、そのままで問題ありません。シンプルで機能します。私が提案する唯一のものは:

  1. pOSTされたデータの検証
  2. aPIがContent-Typeヘッダーを送信して、クライアントにJSON応答を予期するように指示していることを確認してください。

    header('Content-Type: application/json');
    echo json_encode($response);
    

それ以外は、APIは入力を受け取り、出力を提供するものです。必要なものをより複雑にするという点で、物事を「オーバーエンジニアリング」することは可能です。

コントローラーとモデルのルートをたどる場合は、 MVCパターン を読み、ドメインオブジェクトがどのように適合するかを調べます。上記の例を見ると、おそらくadd()アクション/メソッドを持つMathControllerを見ることができます。

GitHub にはRESTful APIの開始点プロジェクトがいくつかあります。

72
Martin Bean

REST AP​​Iをゼロから作成しようとするのは簡単な作業ではありません。考慮すべき多くの問題があり、呼び出し元からの要求とデータ、認証、データの取得、応答の返信を処理するために多くのコードを書く必要があります。

最善の策は、既にこの機能を備えており、テスト済みのフレームワークを使用することです。

いくつかの提案は次のとおりです。

Phalcon- REST APIの構築 -1つのフレームワークで簡単に使用でき、膨大なパフォーマンスを実現

アピジリティ -ワンサイズは、Zend TechnologiesのすべてのAPI処理フレームワークに適合します

Laravel API構築チュートリアル

などなど。 Bitbucket/Githubでの簡単な検索は、最初から多くのリソースを提供します。

17