はじめに Javascript Object Signing and Encryption (以降JOSE)は、JSONを利用したデータ転送用の規格群のひとつです。 当事者間で承認情報などを安全に転送する方法を提供することを目的としています。 本ドキュメントは、JOSEを利用した暗号化の事例紹介です。 同様の技術を必要とする開発者や、暗号化について学習している開発者の参考となることを目的としています。 背景 今回事例を紹介するに至ったAPIの開発では、暗号化にJOSEを使用することが決定していました。 また、APIの暗号化のフローも下記のように決定していました。 クライアントからリクエストでIDを受け取り、そのIDに紐づくユーザ情報を取得する 取得したユーザ情報の一部を署名し、更に暗号化する 暗号化したデータをJOSEのひとつであるJWE形式でクライアントに返却する JOSEを利用した暗号
CTO兼福岡オフィス立ち上げ担当として新アプリを作っている@edvakfです。 JSON APIを開発しているとこういう問題がありがちですよね。 仕様どおりにAPIの形式を作ったはずだけどなんか自信が持てない テストでいくつかのキーが存在するかの簡単なチェックはしてるつもりだけど、全部チェックするのは大変すぎる APIのControllerやViewをリファクタリングしたらレスポンスの形が変わってアプリがめっちゃクラッシュし始めた というのが怖くて誰もリファクタリングできなくなった APIドキュメントがメンテされない 知らない間にレスポンスのフィールドが増えてたけどドキュメントに書いてない これらを解決したい!と思って試行錯誤したら、スマートに解決することができました。この記事ではRailsのことについて書きますが、考え方は他の言語・フレームワークでも同じです。 なお、今回使ったgemのバ
{ "response": { "id": 3342124, "message": "Hi!", "user": { "id": 3456, "name": "Taro Yamada", "image_url": "/images/taro.png" } } } など、どの構造がいいでしょうか? もっと違う構造も考えられます。 JSONはシンプルですが、構造に制約がなさすぎます。適切な設計を行うには適切な制約が必要です。 そこで、plain JSONに少し制約を加えたJSONベースのフォーマットを使うことをおすすめします。 もしあなたが、JSONレスポンスをどのようなフォーマットにするかをチームで議論したことがあるなら、JSON APIは『自転車置き場の議論』に対抗する武器となる。 共有された規約に従うことで、生産性が向上し、汎用的なツールを利用でき、アプリケーションという重要なものに集中
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く