Laravel中正確地返回HTTP狀態(tài)碼方法示例

在 API 中返回狀態(tài)碼是很重要的,因為響應處理程序是工作在 API 的響應狀態(tài)碼之上的。
寫 API 時其中有一個重要的地方是更好的處理響應狀態(tài)碼。以前,我一般會使用不常用的 Integer 類型數(shù)字作為 HTTP 狀態(tài)碼 ??聪旅娴倪@個例子:
<?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)建,那么將會響應 HTTP 201 狀態(tài)碼,但是很多的開發(fā)者并不知道 201 狀態(tài)碼,他們更熟悉 200 成功狀態(tài)碼 。使用 Symfony Response 類可以解決這個問題 。它包含了所有的 HTTP 狀態(tài)碼,并且使用更簡單易懂的命名 。以上的代碼可以修改為如下代碼:
<?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);
}
}
這個類包含了所有定義的 HTTP 狀態(tài)碼,先來看看其中的一些狀態(tài)碼:

雖然我不覺得直接寫數(shù)值的 HTTP 狀態(tài)碼是一個壞習慣,但是使用
HTTP 狀態(tài)碼時用一些不解自明的命名會更好。大家編碼快樂!
原文地址:https://medium.com/@naumancs/how-to-use-...
譯文地址:https://learnku.com/laravel/t/9684/how-t...
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。
相關(guān)文章
深思 PHP 數(shù)組遍歷的差異(array_diff 的實現(xiàn))
深思 PHP 數(shù)組遍歷的差異(array_diff 的實現(xiàn))...2006-06-06
php使用json_decode后數(shù)字對象轉(zhuǎn)換成了科學計數(shù)法的解決方法
這篇文章主要介紹了php使用json_decode后數(shù)字對象轉(zhuǎn)換成了科學計數(shù)法的解決方法,涉及php操作json格式數(shù)據(jù)與數(shù)值轉(zhuǎn)換相關(guān)技巧,需要的朋友可以參考下2017-02-02
PHP call_user_func和call_user_func_array函數(shù)的簡單理解與應用分析
這篇文章主要介紹了PHP call_user_func和call_user_func_array函數(shù)的簡單理解與應用,結(jié)合實例形式分析了PHP call_user_func和call_user_func_array函數(shù)的基本功能、用法及操作注意事項,需要的朋友可以參考下2019-11-11
推薦一款MAC OS X 下php集成開發(fā)環(huán)境mamp
這里給大家推薦一款在mac上搭建WEB服務器環(huán)境的集成環(huán)境安裝軟件,非常的好用,需要的朋友可以拿去,不用謝 ^_^2014-11-11
php5.3 不支持 session_register() 此函數(shù)已啟用的解決方法
php從5.2.x升級到5.3.2.出來問題了。有些原來能用的程序報錯了,Deprecated: Function session_register() is deprecated2013-11-11

