sarav/descriptive-api

一个简单的Laravel包,提供描述性API方法

0.0.2 2023-01-03 07:38 UTC

This package is auto-updated.

Last update: 2024-08-30 01:49:48 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

一个简单的Laravel包,提供描述性API方法

安装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());
    }
}

有关更多信息,请查看此文章