使用Slim框架快速实现RESTful

PHP 2016-05-13

  最近开发中有一个需求即实现客户端和服务端的的数据交互,需要在服务端实现RESTful架构。直接开发必然力不从心,于是考虑是否有相应的框架能够快速实现。从开源项目中一番搜寻,从易用性的角度决定使用php作为开发语言(请求量大的情况可以使用java)。php中的相关框架也较多,发现Slim非常适合编写API服务。

  先附上Slim3.0开发文档Slim中文网站,通过这足够了解Slim的具体使用。

  Slim框架可以很方便地实现get,post,put,patch,delete请求。配置好服务器之后,将github上的slim项目中的1.png 放在目录下,在这之前请配置apache服务器支持.htaccess。然后改写index.php文件就可以实现一个简单的web应用。

<?php

require 'Slim/Slim.php';

\Slim\Slim::registerAutoloader();

$app = new \Slim\Slim();

$app->response()->header("Content-Type", "application/json"); //返回json格式
header("Access-Control-Allow-Origin:http://localhost:4400"); //允许跨域

// GET route 
$app->get(
    '/hello/map/:markers',  //设定路由并获取参数
     function ($markers) {
     $data = array('id' =>1,'point' => [34.8,40.8],'introduction' =>'这是个好地方','praised' => 34);
     echo '[';
     echo json_encode($data);  //输出json格式
     echo ']';
    }
);

// POST route
$app->post(
    '/post',
    function () {
        echo 'This is a POST route';
    }
);

// PUT route
$app->put(
    '/put',
    function () {
        echo 'This is a PUT route';
    }
);

// PATCH route
$app->patch('/patch', function () {
    echo 'This is a PATCH route';
});

// DELETE route
$app->delete(
    '/delete',
    function () {
        echo 'This is a DELETE route';
    }
);

$app->run();

  在浏览器中输入例如 ip/hello/map/fg ,就可以获得参数fg,并返回json格式数据。在具体应用中,可以根据获得的参数从数据库中查找数据并转化为json格式,十分方便。当然,post,put等操作也是一样,详细请查看文档,这里只是抛砖引玉。


本文由 Tony 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

赏个馒头吧