WagnerMontanini / goomerapi
创建一个能够管理您菜单中的餐厅和产品的RESTful API。
1.0.0
2021-03-19 04:38 UTC
Requires
- php: ^7.4
- ext-json: *
- ext-pdo: *
- coffeecode/cropper: ^1.3
- coffeecode/datalayer: ^1.1
- coffeecode/paginator: ^1.0
- coffeecode/router: ^1.0
- coffeecode/uploader: ^1.0
README
GoomerApi库是一个能够管理您菜单中餐厅和产品的RESTful API。
GoomerApi库是一个能够管理您菜单中餐厅和产品的RESTful API。
您可以点击这里了解更多信息:点击这里。
亮点
- 简单安装
- 所有API方法的抽象
- Composer就绪且符合PSR-2规范
可能的改进
- 使用令牌来确保更改、添加和删除数据的安全性。
- 通过API上传图片。
- 餐厅分类。
安装
通过Composer提供上传器
"wagnermontanini/goomerapi": "^1.0"
或者运行
composer require wagnermontanini/goomerapi
将SQL文件导入到您的数据库中。
文档
有关如何使用的详细信息,请参阅组件目录中的示例文件夹。在那里,您将找到每个类的使用示例。它这样工作
有关如何使用的更多详细信息,请参阅组件目录中的示例文件夹。其中包含用于Postman的导入json文件和cURL使用示例的路由。它这样工作
apache
RewriteEngine On
#Options All -Indexes
## ROUTER WWW Redirect.
#RewriteCond %{HTTP_HOST} !^www\. [NC]
#RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
## ROUTER HTTPS Redirect
#RewriteCond %{HTTP:X-Forwarded-Proto} !https
#RewriteCond %{HTTPS} off
#RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# ROUTER URL Rewrite
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?route=/$1 [L,QSA]
nginx
location / {
if ($script_filename !~ "-f"){
rewrite ^(.*)$ /index.php?route=/$1 break;
}
}
CONFIGURAÇÕES Config.php
<?php /** * DATABASE */ define("DATA_LAYER_CONFIG", [ "driver" => "mysql", "host" => "localhost", "port" => "3306", "dbname" => "goomerapi", "username" => "root", "passwd" => "", "options" => [ PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8", PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ, PDO::ATTR_CASE => PDO::CASE_NATURAL ] ]); /** * PROJECT URLs */ define("CONF_URL_BASE", "https://www.goomerapi.com.br"); define("CONF_URL_TEST", "http://goomerapi.test"); /** * UPLOAD */ define("CONF_UPLOAD_DIR", "storage"); define("CONF_UPLOAD_IMAGE_DIR", "images"); define("CONF_UPLOAD_FILE_DIR", "files"); define("CONF_UPLOAD_MEDIA_DIR", "medias"); /** * IMAGES */ define("CONF_IMAGE_CACHE", CONF_UPLOAD_DIR . "/" . CONF_UPLOAD_IMAGE_DIR . "/cache"); define("CONF_IMAGE_SIZE", 2000); define("CONF_IMAGE_QUALITY", ["jpg" => 75, "png" => 5]);
ROTAS index.php
<?php ob_start(); require __DIR__ . "/../vendor/autoload.php"; require __DIR__ . "/Config.php"; /** * BOOTSTRAP */ use CoffeeCode\Router\Router; /** * API ROUTES * index */ $route = new Router(url(), ":"); $route->namespace("WagnerMontanini\GoomerApi\Api"); //restaurants $route->group("/v1"); $route->get("/restaurants", "Restaurants:index"); $route->post("/restaurants", "Restaurants:create"); $route->get("/restaurants/{restaurant_id}", "Restaurants:read"); $route->put("/restaurants/{restaurant_id}", "Restaurants:update"); $route->delete("/restaurants/{restaurant_id}", "Restaurants:delete"); //categories $route->get("/restaurants/{restaurant_id}/categories", "ProductsCategories:index"); $route->post("/restaurants/{restaurant_id}/categories", "ProductsCategories:create"); $route->get("/restaurants/{restaurant_id}/categories/{product_category_id}", "ProductsCategories:read"); $route->put("/restaurants/{restaurant_id}/categories/{product_category_id}", "ProductsCategories:update"); $route->delete("/restaurants/{restaurant_id}/categories/{product_category_id}", "ProductsCategories:delete"); //products $route->get("/restaurants/{restaurant_id}/products", "Products:index"); $route->post("/restaurants/{restaurant_id}/products", "Products:create"); $route->get("/restaurants/{restaurant_id}/products/{product_id}", "Products:read"); $route->put("/restaurants/{restaurant_id}/products/{product_id}", "Products:update"); $route->delete("/restaurants/{restaurant_id}/products/{product_id}", "Products:delete"); /** * ROUTE */ $route->dispatch(); /** * ERROR REDIRECT */ if ($route->error()) { header('Content-Type: application/json; charset=UTF-8'); http_response_code(404); echo json_encode([ "errors" => [ "type " => "endpoint_not_found", "message" => "Não foi possível processar a requisição" ] ], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); } ob_end_flush();
贡献
有关详细信息,请参阅CONTRIBUTING。
支持
安全:如果您发现任何与安全相关的问题,请通过电子邮件wagnermontanini@hotmail.com.br而不是使用问题跟踪器。
如果您发现任何与安全相关的问题,请通过电子邮件wagnermontanini@hotmail.com.br而不是使用问题跟踪器。
谢谢
鸣谢
- Wagner Montanini(开发者)
- 所有贡献者(这是岩石)
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。