在 API 中返回狀態(tài)碼是很重要的,因?yàn)轫憫?yīng)處理程序是工作在 API 的響應(yīng)狀態(tài)碼之上的。
寫 API 時(shí)其中有一個(gè)重要的地方是更好的處理響應(yīng)狀態(tài)碼。以前,我一般會(huì)使用不常用的 Integer 類型數(shù)字作為 HTTP 狀態(tài)碼 。看下面的這個(gè)例子:
?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Post;
Class PostsController extends Controller{
public function store(){
$post = new Post(request()->only('title', 'description'));
request()->user()->posts()->save($post);
return response()->json(['post' => $post], 201);
}
}
在 API 的調(diào)用期間 ,如果數(shù)據(jù)已被創(chuàng)建,那么將會(huì)響應(yīng) HTTP 201 狀態(tài)碼,但是很多的開發(fā)者并不知道 201 狀態(tài)碼,他們更熟悉 200 成功狀態(tài)碼 。使用 Symfony Response 類可以解決這個(gè)問題 。它包含了所有的 HTTP 狀態(tài)碼,并且使用更簡(jiǎn)單易懂的命名 。以上的代碼可以修改為如下代碼:
?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Post;
use Symfony\Component\HttpFoundation\Response;
Class PostsController extends Controller{
public function store(){
$post = new Post(request()->only('title', 'description'));
request()->user()->posts()->save($post);
return response()->json(['post' => $post], Response::HTTP_CREATED);
}
}
這個(gè)類包含了所有定義的 HTTP 狀態(tài)碼,先來看看其中的一些狀態(tài)碼:
雖然我不覺得直接寫數(shù)值的 HTTP 狀態(tài)碼是一個(gè)壞習(xí)慣,但是使用
HTTP 狀態(tài)碼時(shí)用一些不解自明的命名會(huì)更好。大家編碼快樂!
原文地址:https://medium.com/@naumancs/how-to-use-...
譯文地址:https://learnku.com/laravel/t/9684/how-t...
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。