Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Laravelを活用したWeb APIの実装

Laravelを活用したWeb APIの実装

オンライン開催【シューマイ】Tech Lead Engineerから最新技術を学べ!Laravel編
https://shuuu-mai.connpass.com/event/198224/

【Scofield氏*タクトピクセル株式会社 バックエンドエンジニア】
タクトピクセル株式会社でバックエンドエンジニアをしています。

LTテーマ:Laravelを活用したWeb APIの実装
LT概要:弊社で開発・運用しているクラウドサービス型オンライン校正検版ツール「proofrog」では、
SPA構成のバックエンドAPIにLaravelを採用しています。api開発を進める上での基本的な方針や、
活用しているLaravel固有の機能について、弊社の事例を紹介します。

4a8d16c35a4d9b2f6630cb4bdaa7ad35?s=128

Taktpixel Co., Ltd.

December 16, 2020
Tweet

Transcript

  1. Laravelを活用したWeb APIの実装 @Scofield タクトピクセル株式会社

  2. ・タクトピクセル株式会社でエンジニアをしています ・業務ではLaravel, Vue.jsなどを使用 @Scofield

  3. プ ー ド ル クラウド型 オンライン校正検版ツール DLA-Mercury 印刷工場のための 深層学習モデル作成ツール 深層学習・画像処理技術

    独自ライブラリ
  4. 2019/5/20 CONFIDENTIAL 4 https://proofrog.cloud/ https://proofrog.cloud/

  5. None
  6. 各リソース • Routing • Form Request • Controller • Service

    • Repository • Model • API Resource
  7. Routing • prefix, namespace等でグルーピング • コントローラのメソッド名は書かない(後述)

  8. Form Request • バリデーション • ルートパラメータも マージしてバリデー ションする

  9. Controller • リクエストパラメータの 取得 • サービスの処理を実行 • 1 Action 1

    Controller
  10. • ビジネスロジック • レスポンスではなるべ くapi resourceを使う (後述) Service

  11. • 永続化 Repository

  12. • Eloquentモデルを 利用 • リレーションなどの 取得はなるべく EloquentのAPIを使 用 Model

  13. • レスポンス • Eloquentモデルを引 数に渡すと配列形式 に整形できる • ネストが可能 API Resource

  14. まとめ • 基本的にLaravelの機能・規約に乗っ取った設計 & 実装 • 今後複雑性が増したら見直していく必要があるかも... (テーブルと分離したモデリング、SQL、 etc...)

  15. タクトピクセル株式会社 contact@taktpixel.co.jp https://taktpixel.co.jp/#contact お問い合わせ 会社概要、製品情報はこちら Speaker Deck : https://speakerdeck.com/taktpixel

  16. None