タグ

APIに関するAkinekoのブックマーク (83)

  • 君たちの知らないAPIデザインパターンの話をしよう

    このように、RESTの設計原則に従ってAPIを構築することで、ほとんどのAPI設計は直感的に、かつ問題なく行うことができます。 デザインパターンの紹介 ここからが題です。大抵の場合、上の例で示したようなAPI設計で十分です。 ただ、複雑な要件では、上のような典型的なAPI設計のみでは良いAPIを設計するための4つの特性を満たせないことがあり、そのような場合のためにデザインパターンが有効です。 カスタムメソッド 概要 カスタムメソッドは、標準的なCRUD操作(作成、読み取り、更新、削除)では対応できない特定の操作が必要になる場合に便利です。例えば、メールの送信や即時の文書翻訳など、通常の create や update メソッドでは処理が難しい操作がこれに該当します。 参考までに、以下にGoogleが出しているカスタムメソッドの記事を示します。 実装例 以下は、カスタムメソッドを扱うAPI

    君たちの知らないAPIデザインパターンの話をしよう
  • 署名付きURLを利用したファイルアップロードWeb API設計の勘所 | フューチャー技術ブログ

    はじめに現代のWebアプリケーションにおいて、ユーザが写真や動画などのファイルをアップロードする機能は、しばしば求められます。 記事では、ファイルアップロードを実現するための一手段として、「署名付きURL」を利用した方式を取り上げ、その設計について詳しく解説します。 今回は、Amazon Web Services(AWS)を利用する前提のもと、このアプローチを探求していきます。 前半部分は署名付きURLをそもそもよく知らない方向けの導入部となっていますので、要点だけ抑えたい方は設計上のポイントから読まれることをお勧めします。 ファイルアップロードの実現方式パターン署名付きURLの話をする前に、ファイルアップロード機能をWeb APIとして実現する方式について、いくつか代表的なものを紹介します。 Pattern 1. multipart/form-datamultipart/form-da

    署名付きURLを利用したファイルアップロードWeb API設計の勘所 | フューチャー技術ブログ
  • 令和時代の API 実装のベースプラクティスと CSRF 対策 | blog.jxck.io

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

    令和時代の API 実装のベースプラクティスと CSRF 対策 | blog.jxck.io
  • 翻訳: WebAPI 設計のベストプラクティス - Qiita

    これは Enchant の開発者である Vinay Sahni さんが書いた記事「Best Practices for Designing a Pragmatic RESTful API」1を、ご人の許可を得て翻訳したものです。 RESTful な WebAPI を設計しようとすると、細かなところで長考したり議論したりすると思います。また、他の API に倣ってやってはみたものの、当にそれでいいのか、どうしてそうしているのか分からない、何てことも少なくはないと思います。 この記事では、そのようなハマリどころについて Vinay さんなりの答えを提示し、簡潔かつ明快に解説してくれています。 今後 WebAPI を設計される方は、是非参考にしてみてください。 なお、誤訳がありましたら編集リクエストを頂けると幸いです。 まえがき アプリケーションの開発が進むにつれて、その WebAPI を公

    翻訳: WebAPI 設計のベストプラクティス - Qiita
  • 【個人開発】爆速で書籍管理システムを作って大幅な時間削減をした - Qiita

    はじめに こんにちは!!@Sicut_studyです! 今回は個人開発で「書籍管理システムYomuYomu」を作成したので紹介したいと思います。 サービスでやりたかったことがシンプルでなおかつユーザーの作業時間を大きく削減することができたというところから 個人開発に挑戦してみたいけど何を作ればよいかわからない このような方にとてもおすすめのサービスになっています。 私も実装していて「この内容はプログラミングコーチングJISOUの中でも1つの教材として今後使っていこう」と思うくらい良い題材でした 書籍管理システムYomuYomuとは 書籍管理システムYomuYomuは購入したを登録できる簡単なアプリです 以下の機能が利用できます 1. 登録書籍一覧 登録した書籍を50音順で見ることができます 詳細検索を利用することで「あ行」などで書籍を絞ることができます 2. 書籍自動登録 書籍を登録する

    【個人開発】爆速で書籍管理システムを作って大幅な時間削減をした - Qiita
    Akineko
    Akineko 2023/11/28
  • GraphQLはいつ使うか、RESTとの比較

    さぼです、沖縄でWebと設計について考えてます。2023/09/23 に沖縄で行われたTechBaseOkinawa2023 にて上記のタイトルで登壇しました。 今回の内容は GraphQLを設計の観点から考えてみる GraphQLの目的や用途を整理する GraphQLを使う時、または使わない時のヒントを持ち帰ってもらう 最近、GraphQLじゃなくてRESTで良くないと思うケースがなんとなくわかってきたのでそれを共有する という感じで話しました。話した内容を文字に起こし少し改修してZennでも共有することとします。 まえおき 最近はクライアントAppとサーバーAppを分けて実装する事が増えてきた クライアントの環境はますます複雑になっている クライアントとサーバーはWebAPIで通信を行う クライアントが複雑になるのと同時にWebAPIの要求が更に増して来ている APIの要求・応答を効率

    GraphQLはいつ使うか、RESTとの比較
  • 失敗から学ぶAPIファースト / API first learning from failure

    Presentation Slides for ServerlessDays Tokyo 2023 ( connpass) Session Title: 失敗から学ぶAPIファースト ~ 正しいデザインからはじめるアーキテクチャ選定、開発ライフサイクル&コラボレーション Session Video: [ServerlessDays Tokyo 2023] 失敗から学ぶAPIファースト / 川崎庸市 Date: 2023/09/23 Update history - 2023/09/24: fix typo - 2023/12/13: p19 表現を更新「APIファースト」→「APIファースト開発モデル」

    失敗から学ぶAPIファースト / API first learning from failure
  • httpstat.us

    This is a super simple service for generating different HTTP codes. It's useful for testing how your own scripts deal with varying responses. Just add the status code you want to the URL, like this: httpstat.us/200 We'll return a response like this: HTTP/1.1 {status code} {status description} Content-Type: text/plain or application/json Content-Length: {something} {any custom response headers} {st

  • WebAPI でファイルをアップロードする方法アレコレ - Qiita

    WebAPI を開発していると、ファイルを扱いたい場面に出くわすこともあると思います。 ただ、いざ WebAPI にファイルアップロードの仕組みを入れようとすると、いまいちしっくり来る方法がわからず、悩んだりするのではないでしょうか。 今回は実サービスの例を踏まえつつ、どのような方法が使われていて、何がベストプラクティスなのかを検討しようと思います。 ファイルの送信方法 モダンな RESTful WebAPI では、だいたい JSON でデータがやりとりされていると思いますが、この中にファイルの概念を入れようとすると、特に Input(ファイル送信)のやり方に悩むのではないかと思います。 世の中の WebAPI をざっと見てみると、ファイル送信については主に「multipart/form-data」と「Base64 エンコード」のどちらかが使われていることがわかります。 では、それぞれの特

    WebAPI でファイルをアップロードする方法アレコレ - Qiita
  • Next.jsのAPI Routesを中間APIとして使う方法

    全体の概要 基的なAPI結合 基的にはフロント(Next.js)からaxios等を利用して、サーバー側のAPIエンドポイントに対して直接リクエストを送る構成かと思います。 今回紹介するNext.jsAPI Routesを中間APIとして挟んだ場合 今回紹介する構成は下記のようになっています。 この構成にするメリット・デメリットは後の章で解説をしていきます。 この記事の対象者 フロントエンド初級者から中級者 Next.jsAPI Routesの基を学びたい人 セキュリティーを考慮したAPI通信手法について知りたい人 Next.jsAPI Routesを中間APIとして挟むメリット セキュリティーが強化できる ログの管理ができる APIエンドポイントの抽象化 セキュリティーが強化できる Next API Routesを中間APIとして挟むことで、外部から直接体のAPIにアクセスさ

    Next.jsのAPI Routesを中間APIとして使う方法
  • Web APIを手作りする時代は終わった?

    ::: message info これは[フィヨルドブートキャンプ Advent Calendar 2022 Part.1](https://adventar.org/calendars/7760)の25日目の記事です。 昨日の記事は:@shujiwatanabe:shujiwatanabeさんの[質問しながら出来るようにしていく](https://shu91327.hatenablog.com/entry/2022/12/24/091025)と:@saeyama:saeyamaさんの[Rails/Vue 編集時に画像をD&Dで入れ替えした時のActive Storageの保存方法](https://saeyama.hatenablog.com/entry/2022/12/24/000123)でした。 ::: ↓こういうのを職人が丹精込めて一つ一つ手作りする時代は終わりました。 ```sh

    Web APIを手作りする時代は終わった?
  • PostmanがいらなくなるかもしれないVSCodeの拡張機能Thunder Clientがすごい

    VSCode拡張機能GUIベースのHTTPクライアントThunder Clientを試してみたらすごかったので紹介します。 Postmanのコレクションをインポートして使える Thunder ClientはPostmanのコレクションをエクスポートしたJSONをインポートすることができます。 Thunder ClientにインポートしたいコレクションをPostmanの"Collections"で選択します。 メニューから"Export"を選択し、コレクションを保存します。 VSCodeのアクティビティーバーから"Thunder Client"を選択します。 サイドバーにThunder Clientが表示されるので"Collections"をクリックします。 "filter collections"の横のメニューをクリックします。 "Import"をクリックして先程Postmanでエクス

    PostmanがいらなくなるかもしれないVSCodeの拡張機能Thunder Clientがすごい
  • チームでのAPI開発の強い味方!!REST APIクライアント「Paw」と「Insomnia」を比較してみた - コネヒト開発者ブログ

    こんにちは!今年もコナン映画にいってきました、コナンでは服部派のエンジニア結城(@super_manner)です(*´ڡ`●) さて、今回はAPIをチームで開発するうえでつよーい味方になるツールを2つ使い比べた結果をご紹介しようと思います!! そもそもPawとInsomniaとは? 双方ともREST APIクライアントです。 Paw paw.cloud Insomnia insomnia.rest APIを作成していると、POSTする必要があったり、User-AgentやRequestHeaderによる制約を受けたりで プラグイン追加が加速したりしますよね。 うっかりそのまま他のサイトを閲覧して全部がxmlで表示されたりすることもしばしば。 そんな煩わしさも、これらのクライアントを使うことで開放されるのです!! APIをメインに開発されている方にはもはや必需品になっているかもしれませんね。

    チームでのAPI開発の強い味方!!REST APIクライアント「Paw」と「Insomnia」を比較してみた - コネヒト開発者ブログ
  • RESTベースのAPIの動作確認を行うならInsomniaが便利 - Qiita

    APIサーバの動作確認をどうやるか。それが問題だ。 APIサーバ全盛期のサーバサイドですが、RESTベースのAPIサーバとなるとブラウザからでは動作確認が面倒です。 そこで何か良いツールは無いかな? と思ったらInsomniaというツールを見つけました。 有償プランもあるツールですが、無償で使える範囲でも十分便利に使えます。 注意: InsomniaXという別のツールがありますが、これは全く違うツールです。 起動 起動するとこんな感じの画面が出ます。 一番左が保存したAPIリクエストや環境設定、真ん中がリクエスト内容、右がレスポンス結果です。 真ん中の部分で送信するURLとメソッド、パラメータ・ヘッダ内容を選択して"Send"ボタンを押すと、結果が右側に表示されます。 さて、ここまでは類似のツールでもよくあることです。 ここでInsomniaにある便利な機能をご紹介。 environmen

    RESTベースのAPIの動作確認を行うならInsomniaが便利 - Qiita
  • ぼくのかんがえたさいきょうのPostmanかんきょう

    株式会社dottでバックエンドエンジニアをしているとみぎと申します 今回は、プロジェクトPostmanを使う中でさいきょうのPostmanかんきょうを作れたので、その内容をまとめました TL;DR Environmentを使ってURLやトークンを管理する CollectionのVariables・Authを使ってコレクションに依存する値の管理をする Testsのスクリプトを使ってEnvironmentの値更新を自動化する Environmentを使う PostmanのEnvironmentはいわゆる環境変数のような立ち位置で、コレクション全体で参照が可能なものです Environmentの変数は以下の目的でよく使っています APIホストURL(パスを除いたもの)の指定 アクセストークンの保持 プルリクのデプロイバージョン番号の指定 環境毎にEnvironmentを分ける ぼくの場合、主

    ぼくのかんがえたさいきょうのPostmanかんきょう
  • RESTful のウェブ API 設計で避けるべき 6 つのよくあるミス | Google Cloud 公式ブログ

    ※この投稿は米国時間 2022 年 12 月 1 日に、Google Cloud blog に投稿されたものの抄訳です。 オンラインで、組み立て式のテーブルを注文したとします。ところが、パッケージを開けてみると、組立説明書が入っていません。完成品がどんなものかはわかっていても、それぞれのパーツをどう組み立てればいいのか、まるでわかりません。設計が不十分な API を使うコンシューマ開発者も、同じような経験をしているといえます。適切に設計された API なら、容易に見つけ、検索してアクセスし、使用することができます。高品質の API は、コンシューマ開発者がアイデアをひらめき、新しいユースケースを作り上げる手助けになってさえくれます。 もちろん、API 設計を改善する方法はあります。たとえば、RESTful のプラクティスに従うなどです。しかし、お客様が知らず知らずのうちに、ちょっとした不便

    RESTful のウェブ API 設計で避けるべき 6 つのよくあるミス | Google Cloud 公式ブログ
  • RESTful のウェブ API 設計で避けるべき 6 つのよくあるミス | Google Cloud 公式ブログ

    ※この投稿は米国時間 2022 年 12 月 1 日に、Google Cloud blog に投稿されたものの抄訳です。 オンラインで、組み立て式のテーブルを注文したとします。ところが、パッケージを開けてみると、組立説明書が入っていません。完成品がどんなものかはわかっていても、それぞれのパーツをどう組み立てればいいのか、まるでわかりません。設計が不十分な API を使うコンシューマ開発者も、同じような経験をしているといえます。適切に設計された API なら、容易に見つけ、検索してアクセスし、使用することができます。高品質の API は、コンシューマ開発者がアイデアをひらめき、新しいユースケースを作り上げる手助けになってさえくれます。 もちろん、API 設計を改善する方法はあります。たとえば、RESTful のプラクティスに従うなどです。しかし、お客様が知らず知らずのうちに、ちょっとした不便

    RESTful のウェブ API 設計で避けるべき 6 つのよくあるミス | Google Cloud 公式ブログ
  • REST API設計のパターンと原則|Sachiko Kijima

    APIの設計って意外と移り変わりがあるんです。例えばAPIのバージョンの指定方法がヘッダーを使う方法からURLを使う方法にだんだん統合されてきました。 したがってやスライドなど、その時点のベストプラクティスを読むよりは、生きているベストプラクティスを読んだ方が良いと思います。 ここではいくつか参考になるリソースのご紹介と、よく聞かれる質問について触れておきます。 設計ガイドライン、スタイルガイドAPIの設計のベストプラクティスを把握するためによくAPIのドキュメントを見ているのですが、特にご紹介したいのはスタイルガイドや設計ガイドです。 マイクロソフトのAPIガイドライン

    REST API設計のパターンと原則|Sachiko Kijima
  • GitHub - flawiddsouza/Restfox: Offline-First Minimalistic HTTP & Socket Testing Client for the Web & Desktop

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - flawiddsouza/Restfox: Offline-First Minimalistic HTTP & Socket Testing Client for the Web & Desktop
  • httpbin.org

    A simple HTTP Request & Response Service. Run locally: $ docker run -p 80:80 kennethreitz/httpbin