domolicious/tasteful

TASTEful REST 库。创建 RESTful 服务时的起点

dev-master 2019-04-16 10:04 UTC

This package is auto-updated.

Last update: 2024-09-16 21:57:34 UTC


README

RESTful 网络服务的基座

Build Status

用法

查看 example_app 了解实现方式。但本质上你需要的是这些。

<?php /* index.php */

namespace Sunnyexample\Resources;

use Tasteful\Request;
use Tasteful\Response;

require "vendor/autoload.php";

class Examples implements \Tasteful\Interfaces\Resource
{
    public function delete(Request $request): Response
    {
        return new Response\NoContent();
    }
    
    public function get(Request $request): Response
    {
        return new Response\JSON([["title" => "example#1"]]);
    }
    
    public function head(Request $request): Response
    {
        $response = $this->get($request);
        $response->body = null;
        return $response;
    }
    
    public function options(Request $request): Response
    {
        return new Response\Options;
    }
    
    public function post(Request $request): Response
    {
        return new Response\JSON(["title" => "example#1"]);
    }
    public function put(Request $request): Response
    {
        return new Response\JSON(["title" => "example#1"]);
    }
}

class ExampleItems implements \Tasteful\Interfaces\Resource
{
    /* public function delete,get,head,options,post,put */
}

$server = new \Tasteful\Server($_SERVER);
$server->resources = [
    "examples" => "\Sunnyexample\Resources\Examples",
    "examples/items" => "\Sunnyexample\Resources\ExampleItems"
];
$server->run();
$server->output();

启动一个网络服务器 php -S localhost:8080

curl localhost:8080/examples
[{"title": "example#1"}]