Inhaltsverzeichnis
PHPRS @github
先举个栗子
发生了什么
再看个更具体的例子
还能做什么
配合 ezsql访问数据库
手册
Heim Backend-Entwicklung PHP-Tutorial 如何使用PHP编写RESTful接口

如何使用PHP编写RESTful接口

Jun 20, 2016 pm 12:37 PM

PHPRS @github

这是一个轻量级框架,专为快速开发RESTful接口而设计。如果你和我一样,厌倦了使用传统的MVC框架编写微服务或者前后端分离的API接口,受不了为了一个简单接口而做的很多多余的coding(和CTRL-C/CTRL-V),那么,你肯定会喜欢这个框架!

先举个栗子

  1. 写个HelloWorld.php,放到框架指定的目录下(默认是和index.php同级的apis/目录)

    /** * @path("/hw") */class HelloWorld{    /**      * @route({"GET","/"})     */    public function doSomething() {        return "Hello World!";    }}
    Nach dem Login kopieren
  2. 浏览器输入 http://your-domain/hw/

    你将看到: Hello World!就是这么简单,不需要额外配置,不需要继承也不需要组合。

发生了什么

回过头看HelloWorld.php,特殊的地方在于注释(@path,@route),没错,框架 通过注释获取路由信息和绑定输入输出。但不要担心性能,注释只会在类文件修改后解析一次。更多的@注释后面会说明。

再看个更具体的例子

这是一个登录接口的例子

/** * 用户权限验证 * @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;}
Nach dem Login kopieren

还能做什么

  1. 依赖管理(依赖注入),

  2. 自动输出接口文档(不是doxgen式的类、方法文档,而是描述http接口的文档)

  3. 接口缓存

  4. hook

配合 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;}
Nach dem Login kopieren

配置文件

{    {        "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"                   }    },}
Nach dem Login kopieren

手册

请移步 github

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium) 11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium) Mar 03, 2025 am 10:49 AM

11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium)

Arbeiten mit Flash -Sitzungsdaten in Laravel Arbeiten mit Flash -Sitzungsdaten in Laravel Mar 12, 2025 pm 05:08 PM

Arbeiten mit Flash -Sitzungsdaten in Laravel

Einführung in die Instagram -API Einführung in die Instagram -API Mar 02, 2025 am 09:32 AM

Einführung in die Instagram -API

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests Mar 12, 2025 pm 05:09 PM

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests

Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren Mar 04, 2025 am 09:33 AM

Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs Mar 14, 2025 am 11:42 AM

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs

12 Beste PHP -Chat -Skripte auf Codecanyon 12 Beste PHP -Chat -Skripte auf Codecanyon Mar 13, 2025 pm 12:08 PM

12 Beste PHP -Chat -Skripte auf Codecanyon

Benachrichtigungen in Laravel Benachrichtigungen in Laravel Mar 04, 2025 am 09:22 AM

Benachrichtigungen in Laravel

See all articles