LoginSignup
11
8

More than 3 years have passed since last update.

API-Platform の紹介

Last updated at Posted at 2019-07-07

API-Platform は PHP で作成されている API 専用のフルスタックフレームワークです。Symfony フレームワークをベースとして構築されています。

背景

スマホアプリや React.js, Vue.js と行った SPA(Sinble Page Application)の登場、マイクロサービスの登場などにより、バックエンドの Web フレームワークは API サーバーとして使用されることが多くなってきました。そういった流れの中で、API-Platform は登場してきました。
https://api-platform.com/

同様なものに nodo.js で実装された IBM の LoopBack があります。

特徴

  • RESTFull API(CRUD) をビルトイン機能で簡単に作成(Entity クラスを作成するだけ)
  • カスタム API の作成(ビルトインではなく Controller を作成して自分仕様の API の作成)
  • 業界標準の様々なレスポンス形式に対応(json, ld+json, xml, etc.)
  • Symfony のバリデーション機能と連動した RFC7807 準拠のエラーレスポンス
  • Swagger UI に準拠した API仕様書の自動生成
  • API に必要な各種機能(バリデーション、ページネーション、フィルタリング、ソート)
  • 認証機能(JWT, OAuth)
  • GrapQLのサポート
  • React.js ベースのダイナミック Admin ツール
  • React.js, Vue.js ベースの Progressive Web App の雛形生成(Scafolld)
  • 2種類の配布方法
    • Dockerでコンテナ化されたオールインワン環境の提供
    • Symfony プロジェクトへ Composer コンポーネントとして追加

つまり API を作成する時に決めなければならない仕様や
作成しなければならない基本的な機能がオールインワンで提供されています。
利用者はアプリの仕様やビジネス仕様の実装に専念できるわけです

デモ画面

動画

https://youtu.be/M2Hxwi-qNQs
ちょっと動画が長いのと、フランス語訛りが強い英語で聞き取りづらいですが...

Getting Started

オフィシャルサイトの Getting Started

https://api-platform.com/docs/distribution/
Installing Framework のところは2つのインストール方法が書かれています。

  1. Using the Official Distribution (Recommended)
  2. Using Symfony Flex and Composer (advanced users)

1つ目がオフィシャルディストリビューションである Docker を使ったインストール方法で
2つ目が Symfony を使ったインストール方法です。
どちらか一方をやるだけでよいです。

Docker や Symfony の知識があるとより理解できると思いますが、上からコピペでやっていっても出来るかと思います。

Symfony4とAPI Platformを使って5分でAPIサーバを作る

@ippey_s さんの Qiita の記事です
https://qiita.com/ippey_s/items/9cceec252babe8057047

Symfony と Composer を使ったインストール方法が説明されています。

まとめ

API-Platform はドキュメントもしっかりしていますし、品質も高そうです。オフィシャルサイトのトップページを見ると様々なオープンソースで採用されていますし、すでに多くの企業で採用実績があります。

API-Platform は、ちょっとワクワクする API フルスタックフレームワークです。
個人的には Rails や Laravel を初めて見た時と同じ感動がありました。
ブレイクする予感。Symfony ふたたび。

11
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
8