「Web API: The Good Parts」読書メモ 1章~2章

Published: 2016年2月14日 by tomsato

◼︎ 概要

自社で取り扱っているAPIを運用したり、Twitterなど提供をされているAPIを使うなど目にする機会は多く
今後設計したりレビューをする可能性は0ではないため今のうちに勉強をしよう思ったのが経緯です

自分的に気になったところをメモ程度にまとめます

◼︎ 本について

水野貴明著「Web API: The Good Parts」(オライリー・ジャパン発行)

Amazon or オライリー・ジャパン公式サイトにて販売中

◼︎ 1章

目次

  1. Web APIとは何か
    1. Web APIの重要性
    2. さまざまなAPIのパターン
    3. 何をAPIで公開すべきか
    4. Web APIを美しく設計する重要性
    5. Web APIを美しくするには
    6. RESTとWeb API
    7. 対象となる開発者の数とAPIの設計思想
    8. まとめ

気になったところ

  • APIエコノミー
    • APIを公開することで外部サービスとの連携を容易にしてサービスが発展することを言う
  • ProgrammableWeb
    • 様々なAPIを集めてその情報を公開しているサービスというものがある
  • REST API
  • デファクトスタンダード
    • 事実上の標準

◼︎ 2章

目次

  1. エンドポイントの設計とリクエストの形式
    1. APIとして公開する機能を設計する
    2. APIエンドポイントの考え方
    3. HTTPメソッドとエンドポイント
    4. APIのエンドポイント設計
    5. 検索とクエリパラメータの設計
    6. ログインとOAuth 2.0
    7. ホスト名とエンドポイントの共通部分
    8. SSKDsとAPIデザイン
    9. HATEOASとREST LEVEL3 API
    10. まとめ

気になったところ

  • 良いURIを設計するために考えること
    • 短くて入力しやすいURI
    • 人間が読んで理解できるURI
    • 大文字小文字が混在しないURI
    • 改造しやすいURI
    • サーバ側のアーキテクチャが反映されていないURI
    • ルールが統一されたURI
  • HTTPメソッド
    • URIがAPIにおいて操作するリソースでHTTPメソッドは何をするかを表す
    • GET:情報の取得
    • POST:新しいリソースを追加する
    • PUT:既存リソースの更新
    • DELETE:リソースの削除
    • PATCH:リソースの一部変更
  • データベースでの例え
    • GET /users テーブル一覧を取得
      POST /users テーブルに新規追加
      GET /users/:id テーブルで1行取得
  • エンドポイント設計
    • 複数形の名詞を使う
    • やむを得ず単語をつなげる際はハイフン
    • 検索結果が多い場合はページングさせる
  • クエリパラメータとパスの使い分け
    • 一意なリソースを表す情報はパスにする
    • 省略可能な場合はクエリパラメータにする

◼︎ 終わりに

1章は当然APIが何かというところから始まり、重要性やAPIにはどんな種類があるのかが記載されています

2章はエンドポイント設計とリクエストの形式ということで今まで感覚的に学んできたことを文章で学べたのでとても参考になりました

続き
「Web API: The Good Parts」読書メモ 3章~4章
「Web API: The Good Parts」読書メモ 5章~6章

API

Share

最近の投稿

NetlifyのSplit TestingとFunctionsについて使い方をまとめる Split TestingはGitHubのブランチをベースにしたA/Bテストを行うための機能のことで、FunctionsはNetlifyでAWS Lambdaを使うことができる

NetlifyとはHTMLなどの静的コンテンツのみで構成されたWebサイトを閲覧できる形で配信するWebサービス GitHubやBitbucket、GitLabなどと連携して使うことができて、リポジトリにプッシュすることで自動でCI/CDを行うことができる、無料枠が豊富で独自ドメインを設定可能

WordPressからJekyll(GitHub Pages)に移行した手順をまとめる。 お金的な事情や使いやすさなどの理由で無料のJekyll+GitHub Pagesに移行した。JekyllとはMarkdown等から静的ページを生成する静的サイトジェネレータ

Scala開発のためにScalaらしさをまとめる 言語設計者の設計思想を元にScalaらしさについてまとめる オブジェクト指向と関数型の融合について

StorybookとはUI開発環境を提供するツール React、React Native、Angular、Vueなどをサポートしている ユーザーは独立した開発環境でコンポーネントを個別に作成して挙動の確認をテストできたり、コンポーネントを一覧にしてカタログ化できるので他の人に紹介する時に使えたりする

カテゴリ一覧

タグ一覧