8
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

API駆動開発のすゝめ

Last updated at Posted at 2018-04-05

注意事項

これはstmkzaの主観と偏見に基づく一方的な考えに偏った記事です。読むときは気をつけてください

API駆動開発とは

多分普通に使われるわけじゃないです。自分が勝手に命名した名前です。
Webアプリを作るときに先にサーバ側のAPIを作ってから、フロントエンドをJavaScript+HTMLで作って、フロントエンドをAPIを叩くだけの画面にする開発方法です

欠点

  • 基本的にオフラインで使えるアプリが作れない
  • サーバとフロントエンドの開発の同時進行が難しい
  • APIを使った迷惑行為の対策が難しい
  • ログインが必要なサイトを作ると複雑になる

利点

  • 一番大変なサーバ側を先に作ることでモチベーションがなくなるのを防ぐ(一番重要)
  • APIを公開するときにかなり楽できる
  • フロントエンドは他のアプリのものを流用できる
  • 多言語化するときもサーバを修正する必要がない(データ構造が変化する場合を除く)
  • フロントエンドを作る時にAPIが仕様書になってくれる
  • フロントエンドはただのHTMLなのでCDNを使った配信が楽
  • APIサーバの転送量が減らせる
  • かなりレガシーな方法で作っても全く問題ない。むしろフレームワークを使ったら複雑すぎて余計に辛い
  • 大体のAPI仕様書は自動生成できる

このように利点が大きいので、自分は最近この方法ばかりを使ってるような気がします。

開発の流れの例

  1. 扱うデータとそれに関連するCRUD操作を考える
  2. 誰がその操作をできるかを考える
  3. データベースの構造を考える
  4. データを操作するWebAPIを作る
  5. フロントエンドを作る

使う技術の例

  • サーバ:PHP(php-fpm)+nginx(URLルーティング)+SQLite3(PDO)
  • フロント:Bootstrap+jQuery
  • フレームワークを全く使わない

オススメする対象

  • 趣味でプログラミングをやってる場合
  • そこまで大規模じゃないアプリを作る場合
  • フレームワークがアレルギーの人
  • 短期間でアプリを作りたい人
  • ログインが必要ないサイトを作る場合

オススメしない対象

  • 仕事でプログラミングをやってて、詳しい仕様書が必要な場合
  • 大規模アプリを作る場合
  • フレームワークの熱狂的ファン
  • 時間はどれだけでもあるから王道の方法で作りたいという人
  • 複雑なアクセス制御が必要になる場合

何かいいアイディアあれば教えてください

8
1
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
8
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?