日頃Web APIの設計や実装に携わることが多く、とはいえまだまだ未熟だなと自身に感じる部分も多く、何が足りていないのかを知りたいような気持ちがあった。そんなときにこの書籍に出会えた。 日本語で読めるWeb APIに関する書籍だと、Web API The Good Partsが有名。あの書籍も良かったが、出た当時からそれなりに時間が経ってしまったのと、あの書籍の記載内容は少し薄い部分もあり、もう少し何か別のものを、という気持ちがあったが、この書籍はまさにそこを満たすようなものだった。 Web APIの名前付けやリソースの切り方、まではいいとして、それを実際にユーザーに使ってもらうときの権限設定の仕方は実務上非常に重要な関心事になる。 セキュアにするためにどのように区分していくといいのかを示しているのが次の図。 出所:(Kindle Location 4584) また、読み進めていくと、センシティブなデータをどのように扱うかについて記述があった。 参照権限がないユーザーが見にきた場合に、Permissionが足りない、のように返すと、そのエンドポイントリソースが存在していることを認めることになってしまうので避けるべき、というのは一般的な話ではあって、例えばGitHubなんかは見る権限がない状態でアクセスすると404 Not Foundを返す。 このカードを読み取るためのパーミッションがエンドユーザーに割り当てられていないことを意味する。状況によっては、この最後のエラーは情報漏洩と見なされる可能性がある。 (Kindle Locations 5006-5008) ただ、そのリソースは存在するのに404というのは適切なんだろうか?という気持ちはあった。 が、この書籍の中でその回答は得られた。 要するに、その権限のないユーザーの「コンテキスト」においてはNot Foundだということ。ユーザー(コンシューマー)視点で捉えると理解ができる。 同じような話で、/accountsというエンドポイントを指した際の結果がコンテキストによって異なる例が次の図。 出所:(Kindle Location 4753) なんとなく自分の場合、リソースに対する考えが強すぎるのか、 /accounts/C1を用意するとか/accounts?id=C1を用意するとかの対応の考えてしまう。 言い換える