ホームページ  >  記事  >  バックエンド開発  >  PHP を使用して RESTful インターフェイスを作成する方法

PHP を使用して RESTful インターフェイスを作成する方法

WBOY
WBOYオリジナル
2016-06-20 12:37:02995ブラウズ

PHPRS @github

これは、RESTful インターフェイスの迅速な開発のために設計された軽量フレームワークです。あなたも私と同じで、従来の MVC フレームワークを使用してフロントエンドとバックエンドを分けてマイクロサービスや API インターフェイスを作成することに飽きていて、冗長なコーディング (および CTRL-C/CTRL-V) に耐えられない方は、シンプルなインターフェースなので、きっとこのフレームを気に入っていただけるでしょう。

最初に例を示します

  1. HelloWorld.php を作成し、フレームワークによって指定されたディレクトリに配置します (デフォルトは同じ apis/ ディレクトリです)レベルはindex.php)

    /** * @path("/hw") */class HelloWorld{    /**      * @route({"GET","/"})     */    public function doSomething() {        return "Hello World!";    }}
  2. ブラウザに http://your-domain/hw/ と入力します。

    次のように表示されます: Hello World ! とてもシンプルなので、追加の設定や継承や合成は必要ありません。

何が起こったのか

HelloWorld.php を振り返ると、特別なのはアノテーション (@path、@route)、そう、フレームワークです アノテーションを通じてルーティング情報とバインディング入出力を取得します。ただし、パフォーマンスについては心配する必要はありません。アノテーションはクラス ファイルの変更後に 1 回だけ解析されます。 @ コメントについては後ほど説明します。

より具体的な例を見てみましょう

これはログイン インターフェースの例です

/** * 用户权限验证 * @path("/tokens/")  */class Tokens{     /**     * 登录     * 通过用户名密码授权     * @route({"POST","/accounts/"})      * @param({"account", "$._POST.account"}) 账号     * @param({"password", "$._POST.password"}) 密码     *      * @throws ({"InvalidPassword", "res", "403 Forbidden", {"error":"InvalidPassword"} }) 用户名或密码无效     *      * @return({"body"})         * 返回token,同cookie中的token相同,     * {"token":"xxx", "uid" = "xxx"}     *     * @return({"cookie","token","$token","+365 days","/"})  通过cookie返回token     * @return({"cookie","uid","$uid","+365 days","/"})  通过cookie返回uid     */    public function createTokenByAccounts($account, $password, &$token,&$uid){        //验证用户        $uid = $this->users->verifyPassword($account, $password);        Verify::isTrue($uid, new InvalidPassword($account));        $token = ...;        return ['token'=>$token, 'uid'=>$uid];    }     /**     * @property({"default":"@Users"})   依赖的属性,由框架注入     * @var Users     */    public $users;}

他にできること

  1. 依存関係管理 (依存関係注入)、

  2. インターフェイスドキュメント (doxgen 形式のクラスおよびメソッドドキュメントではなく、http インターフェイスを説明するドキュメント) を自動的に出力

  3. インターフェースキャッシュ

  4. フック

ezsql でデータベースにアクセスする

ezsql は、シンプルなオブジェクト指向 SQL 構築ツールです。 、簡単な基​​本的な SQL 操作を提供します。インターフェース

/** @path(/myclass) */class MyClass{   /**    * @route({"GET","/do"})    * @param({"arg0","$._GET.arg0"})    */   public doSomething($arg0){        return Sql::select('xxx')->from('table_xxx')->where( 'xxx = ?', $arg0)->get($this->db);   }    /**     * 依赖注入PDO实例     * @property     * @var PDO     */    public $db;}

設定ファイル

{    {        "MyClass":{            "properties":{                "db":"@db1"                 }        },    },    "db1":{        "singleton":true,        "class":"PDO",        "pass_by_construct":true,        "properties":{            "dsn":"mysql:host=127.0.0.1;dbname=xxx",            "username":"xxxx",            "passwd":"xxxx"                   }    },}

マニュアル

github に移動してください

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。