所以我有一個我正在建設的API,它有一個「成員」模型。我圍繞一個預先存在的數據庫構建這個API,這個「成員」在它的基本查詢中有近16個關係。我現在應該建立我的API來回應像這樣的東西,並返回所有的退休金信息。這是一套全新的協會,以及一些已經建立的協會。我的問題是,是不是開始在MembersController中創建額外的控制器方法,比如showPension/showPensionSummary,還是應該將它們移出到不同的控制器....或者是否存在我缺少的選項c。Laravel API - 處理與許多協會的API「實體」
回答
是的,這是不好的做法,把它放在一個控制器。然後您不應用單一職責協議(SRP)。但如果我沒有錯,你有一個Member
模型。會員與養老金有直接關係,因此您有Pension
模型?如果你有{ID}多條航線從會員,您可以使用路徑模型,結合
public function pension() {
return $this->hasOne('App\Model\Pension');
}
:
在Member
模型,你可以添加的方法等。將id參數更改爲{member}。然後在AppServiceProvider中添加以下代碼:
$router->bind('member', 'App\Models\Member');
在名爲Member的Controller文件夾內創建一個文件夾。在那裏添加一個MemberController和一個PensionController。在PensionController內部添加方法:showPension或只顯示(因爲您已經在控制器中)。這種方式更清潔。
public function show(\Illuminate\Http\Request $request) {
echo json_encode($request->member->pension);
}
是的,但問題變成這樣。如果我將一個成員及其所有關係作爲API調用的一部分返回,那將是一個非常大的回報。考慮到所有事情後,總共可能有大約40種關係。所以當有人使用我的api的成員/ {id}端點時,他們是否應該回到成員每個關係的這個巨型json返回,或者我應該如何將api分割爲多個調用 –
啊,現在我明白了。是的,只需使用上述方法即可。但在不同的控制器中使用。我建議在控制器文件夾內創建一個名爲members的文件夾。在那裏添加一個MemberController和一個PensionController。在養老金控制中使用上述內容。爲此使用路由模型綁定。所以控制器方法中唯一剩下的就是:echo json_encode($ request-> member-> pension); –
這實際上是一個不錯的主意。我已經和我的一些模型做了類似的事情。我會玩弄它,看看我的感受如何。如果您想更新您的答案,我會將其標記爲已接受,除非其他人有更好的主意:P –
- 1. Laravel單個請求多API處理器
- 2. Clojure的-API:多個API處理
- 3. 實體協會
- 4. 實體協會
- 5. LINQ與許多實體許多relatioship
- 6. 處理多對多實體
- 7. 學說刪除與協會的實體
- 8. MEAN實體協會
- 9. 許多與Laravel
- 10. StackExchange API處理與改造
- 11. 與Web API故障處理
- 12. 如何管理會話/事務生命週期以處理許多實體
- 13. 更新許多到許多協會GraphDiff
- 14. 返回在WCF的Web API與HTTPResponseMessage「允許」實體頭
- 15. ZF2,Doctrine2,Gedmo - SoftDelete JTI實體與協會
- 16. OpenID協會處理多長時間?
- 17. Laravel異常處理 - 如何處理與這兩個API和HTML例外
- 18. 422執行期間無法處理的實體API調用
- 19. 寧靜的API:實現版本處理
- 20. 在Laravel 5.1處理多個文件(作爲API)
- 21. Laravel許多與空
- 22. laravel restfull api與Auth
- 23. Python多處理。與許多進程池
- 24. 如何處理Facebook API - 圖Api Api
- 25. Doctrine2 - 堅持實體與協會沒有提取相關實體
- 26. 你知道任何JavaScript API與許多前提處理?像人工智能
- 27. Http協議帖子返回'422'不可處理的實體''
- 28. Azure API管理 - API端點域與實際API URL
- 29. Java Servlet API會話處理中的自定義ID API
- 30. 處理與許多領域的表格
id是會員的id嗎? –
和是的身份證是會員的ID –