タグ

apiに関するgriefworkerのブックマーク (52)

  • 非同期処理とリトライと冪等性 - GS2 Blog

    今回の記事は普段の GS2 のアップデート告知とは少し毛色が異なり、技術的なトピックを扱うエントリーです。 gs2.hatenablog.com こちらで告知した消費アクションの分岐処理を実装するにあたって、どのようなアプローチで課題に向き合ってきたのかを解説しようと思います。 非同期処理とリトライ まずは、非同期処理とリトライについて考えてみましょう。 非同期処理とは? 「API を呼び出すと、処理の結果が返ってくる。処理の途中でエラーが発生したらエラーが返ってくる」というのが同期処理です。 この場合、エラーハンドリングは呼び出し元に委ねられますので、比較的シンプルに処理を行うことができます。 一方で、非同期処理とはどういうものか?というと 「API を呼び出すと、処理を動かし、処理IDを応答する」「処理IDを指定して完了を通知」「処理IDを指定して処理結果を取得」 というように呼び出し

    非同期処理とリトライと冪等性 - GS2 Blog
  • 令和時代の API 実装のベースプラクティスと CSRF 対策 | blog.jxck.io

    Intro CSRF という古の攻撃がある。この攻撃を「古(いにしえ)」のものにすることができたプラットフォームの進化の背景を、「Cookie が SameSite Lax by Default になったからだ」という解説を見ることがある。 確かに、現実的にそれによって攻撃の成立は難しくなり、救われているサービスもある。しかし、それはプラットフォームが用意した対策の質から言うと、解釈が少しずれていると言えるだろう。 今回は、「CSRF がどうして成立していたのか」を振り返ることで、当にプラットフォームに足りていなかったものと、それを補っていった経緯、当にすべき対策は何であるかを解説していく。 結果として見えてくるのは、今サービスを実装する上での「ベース」(not ベスト)となるプラクティスだと筆者は考えている。 CSRF 成立の条件 例えば、攻撃者が用意した attack.examp

    令和時代の API 実装のベースプラクティスと CSRF 対策 | blog.jxck.io
  • neue cc - Claudia - Anthropic ClaudeのC# SDKと現代的なC#によるウェブAPIクライアントの作り方

    AI関連、競合は現れども、性能的にやはりOpenAI一強なのかなぁというところに現れたAnthropic Claude 3は、確かに明らかに性能がいい、GPT-4を凌駕している……!というわけで大いに気に入った(ついでに最近のOpenAIのムーブが気に入らない)ので、C#で使い倒していきたい!そこで、まずはSDKがないので非公式SDKを作りました。こないだまでプレビュー版を流していたのですが、今回v1.0.0として出します。ライブラリ名は、Claudeだから、Claudiaです!.NET全般で使えるのと、Unity(Runtime/Editor双方)でも動作確認をしているので、アイディア次第で色々活用できると思います。 GitHub - Cysharp/Claudia 今回のSDKを作るにあたっての設計指針の一番目は、公式のPython SDKやTypeScript SDKと限りなく似せる

  • 令和時代のページネーションを考える (REST API編) - Sweet Escape

    今回はバックエンドAPIでページネーションをどうやるかについての話なので、よくある無限スクロールUIのようなフロントエンド側の実装に関する話はしない。あくまでもAPI、もっと言えばRESTfulなAPIのリクエスト・レスポンスにおけるページネーションの話。 気で深く考えるというよりざっくり検討したときの話です。 はじめに REST APIを実装するにあたってリスト系のAPIを提供する場合に必須といっても過言ではないのがページネーション。大量のリソースをレスポンスする場合にそれらを一気に返してしまうことは応答速度、転送量、クライアントサイドでの扱いづらさなどなどに繋がるので必須と言える。 最近、新たなAPIを開発するにあたってページネーションをする必要があったこともあり、今回はこのページネーションをどうやって提供するか整理して改めて検討してみた。 前提 TypeScript Nest.js

    令和時代のページネーションを考える (REST API編) - Sweet Escape
  • RESTFulなAPIとCSRFとその対策 - シアトル生活はじめました

    Cross-Site Request Forgery(クロスサイトリクエストフォジェリー)って何? 頭文字をとって「CSRF」ですが、出来るだけ平たく説明すると 「悪いヤツが作ったサイトから読み込んだHTMLやらスクリプトが、勝手に別のサイトにHTTP POSTのリクエストを送信して、知らない間にそのサイトにある自分のデータなどを変更される」 といった感じになるかな。 データの中には重要なデータもあるでしょう。Amazonで欲しい物リストがあったとして、それが全部勝手に「購入」されたら困りますよね。銀行の口座から別の口座にお金が入金されても困ります。(もちろん、Amazonや銀行のサイトなどではCSRF対策がしっかりと施されているでしょうから、大丈夫!・・っであることを祈る) Cross-site とは二つのウェブサイトを跨いでること。サイトのひとつは当然「悪いヤツのサイト」でもうひとつは

    RESTFulなAPIとCSRFとその対策 - シアトル生活はじめました
  • Idempotency-Key Headerを使ったリトライと、オンラインイベントの"Kaigi感" - inSmartBank

    去る2021年10月23日に開催されたKaigi on Rails 2021にて、弊社の@ohbaryeが "Safe Retry with Idempotency-Key Header" というタイトルで発表してきました。 発表スライドはSpeakerDeckにて公開済みです。 後日アーカイブ動画も公開されるとのことですのでそちらも是非ご覧頂きたいのですが、おとなしく30分の動画を視聴できるほど現代人は暇じゃないですよね。なので記事の前半では忙しい人のために発表内容を1/10ぐらいの密度で解説してみます。 (2021-10-31追記) 動画が公開されました 🎉 www.youtube.com (2021-10-31追記おわり) ただ、それだけでは配信動画をすでに視聴いただいた方への新規情報がゼロになってしまうので、後半では発表に関していただいたtweet・質問・感想へのコメントへのリ

    Idempotency-Key Headerを使ったリトライと、オンラインイベントの"Kaigi感" - inSmartBank
  • C# から Azure の Log Analytics にクエリを投げる

    ここを見ながらやっていきます。 コンソールアプリプロジェクトに以下の参照を追加します。 Microsoft.Azure.OperationalInsights Microsoft.Rest.ClientRuntime.Azure.Authentication アプリ内にキーやらなんやらを埋め込むと、めんどくさいので今回作る例ではユーザーシークレットから読み込むようにしておこうと思います。なので以下のパッケージも追加しておきます。 Microsoft.Extensions.Configuration.UserSecrets Microsoft.Extensions.Configuration.Binder ユーザーシークレットには以下のような感じのデータがあることを想定して置く感じでコードを書いていきましょう。 { "WorkspaceId": "", "ClientId": "", "Cl

    C# から Azure の Log Analytics にクエリを投げる
  • SwaggerのAPI定義からPDFドキュメントを生成する

    前回はASP.NET CoreのWeb APIプロジェクトにSwaggerを組み込んでAPIのドキュメントをブラウザ上に表示させるところまで実行しました。 これはこれで手軽にAPIの仕様を確認出来て便利なのですが、受託開発の際の納品物としてお客様に渡すには少し不便です。「納品は紙(PDF)で」と言われる事がまだありますよね? ブラウザに表示されているものを印刷して渡してしまっても良いかもしれませんが、それだと今ひとつ見栄えが良くないので出来ればもう少しきれいなPDF文書を自動生成したいところです。 そこで調べたところ、次のような事が分かりました。 ● swagger2markup-cli を使えばSwaggerが生成するJSONファイルから静的なHTMLMarkdownAsciiDoc形式のドキュメントなどを生成する事が出来る。 ● asciidoctor-pdf を使えばAsciiD

    SwaggerのAPI定義からPDFドキュメントを生成する
  • 会計フリー Public API史上初の新バージョン移行を完遂しました - freee Developers Hub

    こんにちは、freeeのPublic APIチームでエンジニアをしているまっつーです 花粉症ですごい鼻水が出るので少しくらい体重落ちてるんじゃないかと期待してます 去年の6月15日、会計freeeのPublic APIは新バージョンを公開しました developer.freee.co.jp この新バージョンでは約30個の破壊的変更を含んでいます そして去年の12月、会計freeeのPublic APIは半年間の並行運用期間を経て、新バージョンへの完全移行を達成しました この記事では後方互換性を保ち、既存ユーザーに影響を与えないことと、APIの負債を解消しより使いやすいAPIへと進化させることを両立するために、どのように工夫して進めたのかをお伝えしたいと思います 破壊的変更とは Public APIはそれを使って開発や業務を行っている方がいるため、変更する時には後方互換性を担保しすべての利用

    会計フリー Public API史上初の新バージョン移行を完遂しました - freee Developers Hub
  • APIに利用制限をかけるとしたらどういうやりかたがあるのか - おもしろwebサービス開発日記

    この記事はSmartHR Advent Calendar 2020 11日目の記事です。 僕のお手伝いしているSmartHRでは、毎週バックエンドエンジニアが集まり、技術的なトピックについて共有、相談しあうミーティングを開催しています。そのミーティングでは僕がTipsなどを共有するコーナーが常設されています*1。 このエントリでは、そのコーナーで共有した内容をひとつ紹介します。 APIに制限をかける方法について APIを外部に提供するとき、一定の制限をかけてユーザがAPIを乱用するのを防ぐことはよくあることではないでしょうか。素直に考えると「1時間に5000回までAPIを実行できる」のようなやり方を思いつきますね。GitHubAPIもそのやり方ですし、SmartHRAPIも同様です。 じゃあそれでいいのでは。となるかもしれませんが少し待ってください。いろんなクライアントがAPIを大量に

    APIに利用制限をかけるとしたらどういうやりかたがあるのか - おもしろwebサービス開発日記
  • RESTful API設計におけるHTTPステータスコードの指針 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? RESTful APIを設計した際のステータスコードの指針です。 メソッド別 GET 成功した場合 200 OK:最も一般的 304 Not Modified:条件付きGETでキャッシュを使わせたい場合 POST 成功した場合 201 Created 作成したリソースのURIを示すLocationヘッダを付けておく 議論 200 OKだとまずいのか? 200 OKを応答する実装も多くあり、まずいというわけでもない 200 OKはPOST結果がキャッシュ可能、201 CreatedはPOST結果がキャッシュ不可能として分けてもいいが、そこ

    RESTful API設計におけるHTTPステータスコードの指針 - Qiita
  • HTTPステータスコードを適切に選ぶためのフローチャート : 難しく考えるのをやめよう | POSTD

    HTTPステータスコードを返すというのはとても単純なことです。ページがレンダリングできた?よし、それなら 200 を返しましょう。ページが存在しない?それなら 404 です。他のページにユーザをリダイレクトしたい? 302 、あるいは 301 かもしれません。 I like to imagine that HTTP status codes are like CB 10 codes. "Breaker breaker, this is White Chocolate Thunder. We've got a 200 OK here." — Aaron Patterson (@tenderlove) 2015, 10月 7 訳:HTTPのステータスコードのことは、市民ラジオの10コードみたいなものだと考えるのが好きです。「ブレーカー、ブレーカー、こちらホワイト・チョコレート・サンダー。200

    HTTPステータスコードを適切に選ぶためのフローチャート : 難しく考えるのをやめよう | POSTD
  • 人気の旅行APIをまとめてみた - Qiita

    旅行と観光は、世界最大かつ最も成長著しい産業の1つです。国連世界観光機関(UNWTO)によると、2016年には1950年の2,500万人から12億人もの人が外国に到着しました。専門家によると、この業界は今後もさらに成長すると予想されます。 この成長により、旅行会社はAPI(アプリケーション・プログラミング・インターフェイス)を公開し、開発者がAPIの機能をアプリケーションに統合できるようになりました。 この記事では、現在使用されている人気の旅行APIのリストを作成しました。このリストを作成するにあたり、次の基準に基づいてAPIをランク付けしました。 •**API機能:**これらのAPIの最も高度な機能のいくつかを詳しく調べました。 •**人気:**各プラットフォームの人気を確認しました。これは、Webサイトまたはアプリケーションに統合するのに最適なプラットフォームを決定するのに役立ちます。

    人気の旅行APIをまとめてみた - Qiita
  • Google Drive REST API v3 for Android完全ガイド|toconakis.tech

    簡単にGoogle DriveにアクセスできたGoogle Drive Android APIがdeprecatedとなり、2019年12月6日には接続が出来なくなります。 代わりにGoogle Drive REST APIへの変更が案内されています。 (https://developers.google.com/drive/android/deprecation) この記事では、現在最新のGoogle Drive REST API v3 をAndroidに実装する手順を丁寧に解説していきます。 1. 開発コーンソールでGoogle Drive APIを有効化 Google開発コンソールにログインをして、Google Drive APIを有効化します。 まだプロジェクトが1つも無い場合は、作成してください。 https://console.developers.google.com 2.

    Google Drive REST API v3 for Android完全ガイド|toconakis.tech
  • commit以外の数値でも草を生やせる、PixelaというAPIサービスを作った! - えいのうにっき

    作りました! pixe.la これはなに? お好きな数値を登録、その登録された数値情報に基づいて、アレのあれっぽくグラフを作れるサービスです! アレのあれってのは、これのコレ↓っぽいやつです! ↑commit回数をグラフにした場合のイメージ。 ↑プロダクトのデプロイ回数をグラフにした場合のイメージ。 ↑体重の変動(前日比)をグラフにした場合のイメージ。 どうやって使うの? Pixela は、サービスのトップページ以外は全部 Web API のみで構成されるサービスです!なので、ユーザー登録からなにから、全部 API でおこないます! $ curl -X POST https://pixe.la/v1/users -d '{"token":"thisissecret", "username":"a-know", "agreeTermsOfService":"no", "notMinor":"

    commit以外の数値でも草を生やせる、PixelaというAPIサービスを作った! - えいのうにっき
  • [C#] Amazon Product Advertising API の利用(REST サンプルコードの修正) – プログラミング生放送

    C# で Amazon Product Advertising API の利用方法です。この API は商品情報とアフィリエイト(アソシエイト)用の URL が取得できます。Amazon の開発者向けサイトからダウンロードできるサンプルコードが古いので修正します。 アソシエイトタグ、Access Key ID と Secret Access Key の取得 最初に API 呼び出しに必要なキーの取得概要だけ紹介します。 Amazon アソシエイト のアカウントの作成し、***-22 という形式のアソシエイトタグ(トラッキング ID)を取得します。 さらに、アソシエイトのホームの「Product Advertising API」タブから Amazon Web Services アカウントを作成します。 最終的に、Amazon Web Services の IAM Management Con

    [C#] Amazon Product Advertising API の利用(REST サンプルコードの修正) – プログラミング生放送
  • Amazon Product Advertising API 用のクライアントライブラリをつくっている - ✘╹◡╹✘

    Amazon Product Advertising API とは Product Advertising API は、Amazon の商品情報や関連コンテンツをプログラムを通してアクセスできるサービスを提供することで、Web 開発者の皆様が、ご自分の Web サイトでAmazon の商品を紹介することによる紹介料の獲得を可能とします。 https://affiliate.amazon.co.jp/gp/advertising/api/detail/main.html 要は、Amazon のアソシエイトを使って商品を宣伝する目的で、Amazon の商品情報を API 経由で操作することができるサービスが提供されている。この記事は、この APIRuby から利用するためのライブラリをつくっているという話。 GitHub ソースコードは GitHub で管理されている。ライブラリの AP

    Amazon Product Advertising API 用のクライアントライブラリをつくっている - ✘╹◡╹✘
  • API 設計ガイド  |  Cloud API Design Guide  |  Google Cloud

    フィードバックを送信 API 設計ガイド コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。 変更履歴 はじめに これは、ネットワーク API の一般的な設計ガイドです。2014 年以来 Google 内部で使用され、Cloud API やその他の Google API を設計するときに Google が従うガイドです。この設計ガイドは、外部のデベロッパーへの情報提供と、互いの連携作業の効率化のためにここで共有されています。 Cloud Endpoints のデベロッパーには、このガイドは、gRPC API を設計するときに特に役立つことがあり、そのような場合にはこれらの設計原則を使用することを強くおすすめします。ただし、このガイドの使用は必須ではありません。Cloud Endpoints と gRPC はガイドに従わなくても使用できます。 このガイドは、gR

    API 設計ガイド  |  Cloud API Design Guide  |  Google Cloud
  • API デザイン : URL には名前と識別子のどちらを使うべきか | Google Cloud 公式ブログ

    ウェブ API の設計に携わっている方であれば、API で使う URL のスタイルに統一的な考え方がないことも、選択した URL スタイルが API の使いやすさや寿命に大きな影響を与えることも、よくご存じでしょう。Google Cloud の Apigee チームは、社内だけでなくお客様とも協力しながら、API の設計について長く検討を行ってきました。稿では、私たちが設計の現場で実際に使用している URL のデザイン パターンと、それを使う理由についてシェアしたいと思います。 著名なウェブ API をご覧になれば、いくつかの異なる URL パターンがあることに気づかれるはずです。次に示すのは、極端に異なる考え方に基づいた 2 つのスタイルの具体例です。 https://ebank.com/accounts/a49a9762-3790-4b4f-adbf-4577a35b1df7 htt

    API デザイン : URL には名前と識別子のどちらを使うべきか | Google Cloud 公式ブログ
  • Swagger+JSON SchemaでAPIの型をテストして開発サイクルをスピードアップさせた話 - pixiv inside

    CTO兼福岡オフィス立ち上げ担当として新アプリを作っている@edvakfです。 JSON APIを開発しているとこういう問題がありがちですよね。 仕様どおりにAPIの形式を作ったはずだけどなんか自信が持てない テストでいくつかのキーが存在するかの簡単なチェックはしてるつもりだけど、全部チェックするのは大変すぎる APIのControllerやViewをリファクタリングしたらレスポンスの形が変わってアプリがめっちゃクラッシュし始めた というのが怖くて誰もリファクタリングできなくなった APIドキュメントがメンテされない 知らない間にレスポンスのフィールドが増えてたけどドキュメントに書いてない これらを解決したい!と思って試行錯誤したら、スマートに解決することができました。この記事ではRailsのことについて書きますが、考え方は他の言語・フレームワークでも同じです。 なお、今回使ったgemのバ

    Swagger+JSON SchemaでAPIの型をテストして開発サイクルをスピードアップさせた話 - pixiv inside