簡體   English   中英

使用Laravel 4生成RESTful響應

[英]Generating RESTful responses with Laravel 4

我正在使用AngularJS構建一個與Laravel 4中開發的REST API對話的應用程序。

到目前為止,我已經有了一個良好的開端,每個請求都發送相關的Access-Control標頭,以使Angular與API進行通信,並且我還構建了一個UserController資源:

Route::resource('users', 'UserController');

但是現在我似乎正面臨着一堵牆。 為了獲得學習機會,我想使用良好的標准正確構建此REST API,並且我正在嘗試找出如何做出響應。

我知道我想從API返回JSON,據我所知,我應該將每個響應都包裝在一個data字段中,而且我也意識到我可以在控制器操作底部使用類似的方法來做到這一點:

return Response::json(array(
    'data' => array(
            'users' => array(
                array(
                    'username' => 'Bob',
                    'email' => 'bob@gmail.com'
                )
            )
        ),
        'status' => 200,
        'success' => true
    ),
    200
);

但是,我不想在應用程序中的每個控制器動作中重復這種邏輯,所以我想知道如何使該代碼更干燥,以便在控制器的末尾可以執行以下操作:

return array(
    'users' => array(
        array(
            'username' => 'Bob',
            'email' => 'bob@gmail.com'
        )
    )
);

在我的應用程序的其他地方,我可以做Response::json東西。 有任何想法嗎?

因此,就像您說的那樣,您想返回一個JSON響應,例如:

return Response::json(
        array(
            'status' => 'success',
            'pages' => $modelData->toArray()
        ),
        200
    );

因此,不必每次都重復此操作,您可以僅在基本控制器類中創建一個createResponse ...()函數,即可在所有控制器中調用該函數。 響應失敗的函數可能類似於:

function createResponseFailed() {
    return Response::json([
        'error' => [
            'message' => 'Some failed message' 
        ]
    ], 404);
}

那只是一個簡單的例子,但說明了這一點。 希望能幫助到你!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM