FrontPage
疑問 †
冪等 †
- 冪等性とは、ある操作を1回行っても複数回行っても結果が同じということ
- よく例にあげられるのは、i = 0 と i = i + 1 である。
var i = 0; // i は必ず 0 になる:冪等性が保たれる
// 実行する度に i が 1 足される。(実行回数によって、 i の値が変わってしまう)
// :冪等性が保たれない
i = i + 1
copy a.txt b.txt # copy できた
copy a.txt b.txt # 既に b.txt があるため、copy できない overwrite b.txt? (y/n [n])
- なぜこの動作が大切?GET, DELETEが冪等であるべき。
注: ハンドラをべき等にするかどうか検討する必要があります。Cloud Tasks は「少なくとも 1 回」処理を行うように設計されています。つまり、タスクが正常に追加された場合、キューはそれを少なくとも 1 回配信します。まれに複数のタスクが実行されることもあるので、繰り返し実行されても有害な副作用が生じないように注意してください。←これはまじで重要な制約
APIライブラリごとの制約 †
- Pythonでは答えがlease_tasks_responseが32MBを超えないようにって書いてある
- オプション明示するとどう?
URLFetch †
- URLFetchはHTTPリクエストを送るためのライブラリ。GAE, GASの両方で提供されていて便利
- URLFetchをあえて使う利点はほとんどないが、URLFetchのFetchAsync?()だったら使う価値あり。
ソケット通信 †
- socket通信は主に外部DBがHTTPよりも低いインターフェースしか持っていない場合に使う
- HTTPリクエストももとを正せばソケット通信だが、DBはなぜかそれより下位の仕組みを使っている
HTTP2 †
OpenAPI †
- =Swagger
- OpenAPIはRESTふl APIを記述するためのフォーマット
gRPC †
- 多言語型
- protoはプロトコルバッファでインターフェースを定義する。入出力の型と、どのような関数があるかを定義することができる。これによって、どんな言語で実装しても大丈夫になるのでいろいろと楽
- gRPCのもちべ
- もともとはStubbyというRPCを使っていたけど同等以上の機能が標準で出てきたので新しく作ろうという感じ
- gRPCの特徴は
Cloud Endpoints †
- デプロイすると、「API とサービス」一覧に表示されます
- Googleで発行したApiKey?認証をバックエンド(アプリ側)に実装せずに可能になります
- アクセス制限が必要なAPIの場合「API とサービス」からAPIキーを発行してopenapi.yamlで定義すれば、アクセス制限が可能です
- モニタリングやログの確認が画面上からできます
- リクエスト数、レイテンシ、5xxエラー率など確認が可能です
- デベロッパーポータルでopenapi.yamlをもとに作成されたAPIドキュメント自動作成機能
SOAP †