sarav / descriptive-api
一个简单的Laravel包,提供描述性API方法
0.0.2
2023-01-03 07:38 UTC
Requires
- php: ^8.0.2
- laravel/framework: ^9.0
README
一个简单的Laravel包,提供描述性API方法
- Laravel: 9.0.*
- 作者: Sarav
- 作者主页: http://sarav.co
安装Composer包
打开终端并导航到您的laravel文件夹。现在运行以下命令
composer require sarav/descriptive-api
这就是包设置所需的所有内容。
用法
以下是可用方法的列表
现在您可以开始使用以下方法
ok()
public function index() { $articles = Article::paginate(); return response()->ok($articles); }
created
public function store(StoreArticleRequest $request) { $article = Article::create($request->validated()); return response()->created($article); }
noContent
public function destroy(Article $article) { $article->delete(); return response()->noContent(); }
badRequest
public function store(Request $request) { if ($request->age < 0) { return response()->badRequest(); } }
unauthorized
public function store(Request $request) { if (!auth()->check()) { return response()->unauthorized(); } }
forbidden
public function store(Request $request) { $user = $request->user(); if (!$user->isAdmin()) { return response()->forbidden(); } }
notFound
public function update(Request $request, $id) { $article = Article::find($id); if (!$article) { return response()->notFound(); } }
validationFailure()
public function update(Request $request, $id) { $validator = Validator::make([ 'comment' => 'required' ], $request->all()); if ($validator->fails()) { return response()->validationFailure('Validation failure', $validator->errors()); } }
internalServerError()
public function update(Request $request, $id) { try { // Your Business Logic } catch (Exception $e) { return response()->internalServerError(); } }
覆盖默认消息
如果您想覆盖默认消息,只需提供默认消息作为参数即可。就是这样。
例如,
public function store(Request $request) { // Overriding badRequest() if ($request->age < 0) { return response()->badRequest('Invalid age provided'); } // Overriding unauthorized() if (!auth()->check()) { return response()->unauthorized('User not authorized'); } // Overriding forbidden() $user = $request->user(); if (!$user->isAdmin()) { return response()->forbidden('Access denied. Please contact administrator'); } // Overriding notFound() $article = Article::find($id); if (!$article) { return response()->notFound('Article not found'); } // Overriding validationFailure() $validator = Validator::make([ 'comment' => 'required' ], $request->all()); if ($validator->fails()) { return response()->validationFailure('Please check the errors', $validator->errors()); } }
有关更多信息,请查看此文章。