Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php declare(strict_types=1);
2/*
3 * This file is part of Aplus Framework Routing Library.
4 *
5 * (c) Natan Felles <natanfelles@gmail.com>
6 *
7 * For the full copyright and license information, please view the LICENSE
8 * file that was distributed with this source code.
9 */
10namespace Framework\Routing;
11
12use Framework\HTTP\Method;
13use Framework\HTTP\ResponseHeader;
14use Framework\HTTP\Status;
15
16/**
17 * Interface ResourceInterface.
18 *
19 * The interface for data management via RESTful APIs
20 * using all correct HTTP methods to manage a resource.
21 *
22 * Note: If a resource needs more than one parameter to get URL path information
23 * provided by placeholders, in addition to $id, do not implement this interface.
24 * But this interface can be a reference because its method names are used in
25 * {@see RouteCollection::resource()}.
26 *
27 * @see https://developer.mozilla.org/en-US/docs/Glossary/REST
28 *
29 * @package routing
30 */
31interface ResourceInterface
32{
33    /**
34     * Handles a GET request for /.
35     *
36     * Common usage: Show a list of paginated items.
37     *
38     * @see Method::GET
39     *
40     * @return mixed
41     */
42    public function index() : mixed;
43
44    /**
45     * Handles a POST request for /.
46     *
47     * Common usage: Try to create an item. On success, set the Location header to
48     * the 'show' method URL and return a 201 (Created) status code. On fail, return
49     * a 400 (Bad Request) status code and list the error messages in the body.
50     *
51     * @see Method::POST
52     * @see ResourceInterface::show()
53     * @see Status::BAD_REQUEST
54     * @see Status::CREATED
55     * @see ResponseHeader::LOCATION
56     *
57     * @return mixed
58     */
59    public function create() : mixed;
60
61    /**
62     * Handles a GET request for /$id.
63     *
64     * Common usage: Show a specific item, based on the $id, in the body. If the item
65     * does not exist, return an 404 (Not Found) status code.
66     *
67     * @param string $id
68     *
69     * @see Method::GET
70     * @see Status::NOT_FOUND
71     * @see Status::OK
72     *
73     * @return mixed
74     */
75    public function show(string $id) : mixed;
76
77    /**
78     * Handles a PATCH request for /$id.
79     *
80     * Common usage: Try to update an item based on the $id. On success return a 200
81     * (OK) status code and set the Location header to the 'show' method URL. On
82     * fail, return a 400 (Bad Request) with the validation errors in the body.
83     *
84     * Note: The HTTP PATCH method allow items to be updated by parts. E.g.
85     * it is possible to update only one, or more, fields in a database table
86     * row.
87     *
88     * @param string $id
89     *
90     * @see Method::PATCH
91     * @see ResourceInterface::show()
92     * @see Status::BAD_REQUEST
93     * @see Status::OK
94     * @see ResponseHeader::LOCATION
95     *
96     * @return mixed
97     */
98    public function update(string $id) : mixed;
99
100    /**
101     * Handles a PUT request for /$id.
102     *
103     * Common usage: Try to replace an item based on the $id. On success return a 200
104     * (OK) status code and set the Location header to the 'show' method URL. On
105     * fail, return a 400 (Bad Request) with the validation errors in the body.
106     *
107     * Note: The HTTP PUT method requires an entire resource to be updated. E.g.
108     * all fields in a database table row should be updated/replaced.
109     *
110     * @param string $id
111     *
112     * @see Method::PUT
113     * @see ResourceInterface::show()
114     * @see Status::BAD_REQUEST
115     * @see Status::OK
116     * @see ResponseHeader::LOCATION
117     *
118     * @return mixed
119     */
120    public function replace(string $id) : mixed;
121
122    /**
123     * Handles a DELETE request for /$id.
124     *
125     * Common usage: Delete an item based on the $id. On success, return a 204
126     * (No Content) status code.
127     *
128     * @param string $id
129     *
130     * @see Method::DELETE
131     * @see Status::NO_CONTENT
132     *
133     * @return mixed
134     */
135    public function delete(string $id) : mixed;
136}
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy