タグ

webapiに関するstreetbeats21のブックマーク (15)

  • HerokuのAPIデザイン

    Herokuが自ら実践しているAPIデザインガイドをGithubに公開した. “HTTP API Design Guide” このガイドは些細なデザイン上の議論を避けて,ビジネスロジックに集中すること目的としている.Heroku特有なものではなく,一般にも十分適用できる知見となっている. 最近は,モバイル向けにAPIをつくることも多いため,勉強もかねて抄訳した.なお内容は,HTTP+JSONのAPIについて基的な知識があることが前提となっている. 適切なステータスコードを返す それぞれのレスポンスは適切なHTTPステータスコード返すこと.例えば,“成功"を示すステータスコードは以下に従う. 200: GETやDELETE,PATCHリクエストが成功し,同時に処理が完了した場合 201: POSTリクエストが成功し,同時に処理が完了した場合 202: POSTやDELETE,PATCHリク

  • APIトークン認証の論理設計

    SPAやモバイルアプリから利用するAPIを開発する際の、トークン認証のお話です。 どの認証ライブラリを使うべきという話ではなく、トークン認証の論理的な設計について考察します。 私自身も結論が出ていないので、色んな意見が聞けると嬉しいです。 出発点 ユーザテーブルにアクセストークンを持つのが最も安直な発想だと思います。 ログイン成功時にアクセストークンを発行し、該当ユーザレコードにセット。 同時に有効期限もセットします。 認証時には、アクセストークンが存在し有効期限内であれば、認証を通過させ、 そうでなければ認証失敗とします。 ログアウト時には、該当ユーザレコードのアクセストークンを空にします。 発行日時を持ち、システム内に定義された有効期間をもとに、認証時に計算する方法もあると思います。 Laravel Sanctum 等はそういう実装です(しかもデフォルトでは有効期限なし)。 有効かどう

    APIトークン認証の論理設計
  • 【徹底解説】REST VS GraphQL

    注意:今回の記事で載せているコードは読者に具体的なコードのイメージを持たせる目的で書いている。それ故に、実際にブラウザ上で実行しても動作しない点には注意してほしい。より専門的ににGraphQLとRESTの違いを学びたいならLogRocketの記事とApolloの記事を参考に。 はじめに 今回の記事では、Web APIの開発に重宝されるRESTとGraphQLの違いを解説する。 対象とする読者 これからREST、またはGraphQLを実務で積極的に活用したいひと 両者の違いがわからないひと 個人開発等でWeb APIをつくるひと タイトルを見てなんとなく気になったひと APIとは RESTとGraphQLの議論に入る前に、まずはAPIについて説明する必要がある。 Wikipediaによると、API(Application Programming Interface)は以下のように定義されてい

    【徹底解説】REST VS GraphQL
  • FastAPIで学ぶPythonによるREST API開発の基本

    はじめに 今回の記事では、FastAPIでREST APIを開発する手順を簡潔に解説する。 記事の対象読者 Pythonの基文法(データ型、条件分岐、繰り返し)を理解している人 RailsLaravel等のWebフレームワークで簡単なWebアプリケーションを開発できる人 FastAPIで簡潔にREST APIを開発したい人 用語解説 FastAPI FastAPIの公式ドキュメントによると、以下のように説明されている。 FastAPI is a modern, fast (high-performance), web framework for building APIs with Python 3.7+ based on standard Python type hints. 簡潔に言えば、FastAPIPythonAPIを開発するために開発されたWebフレームワークである。P

    FastAPIで学ぶPythonによるREST API開発の基本
  • RESTful のウェブ API 設計で避けるべき 6 つのよくあるミス | Google Cloud 公式ブログ

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

    RESTful のウェブ API 設計で避けるべき 6 つのよくあるミス | Google Cloud 公式ブログ
  • 個人開発で「Excel専用のWebAPI」を作りました

    どういうもの? このように関数を使ってデータを取り込めます。 背景 元々は「インターネット上のWebAPIのデータをExcelに取り込みたい」と思ったのがきっかけです。 VBAマクロを使えば簡単ではありますが、マクロは使いたくないという方も多いのではないでしょうか。かくいう私も勤務先が属人化を防ぐためにマクロの使用を推奨していません。 そこで、関数を使用する方法を選択しました。 ExcelにはWEBSERVICE 関数という指定したURLの応答データを取り込む関数があります。 しかし、この関数は大変便利な関数ですが、ExcelHTMLやJSONのパーサーを用意していません。結局取り込んだHTMLやJSONの処理にはVBAマクロが必要になります。 また、欲しいWebAPIが存在しない問題もありました。 そこで、Excelでデータを編集するのではなく、元々のWebAPIExcel用に作れば

    個人開発で「Excel専用のWebAPI」を作りました
  • APIの脆弱性はどの程度危険なのか、どうすれば攻撃を防げるのか

    サイバーセキュリティツール「Burp Suite」を手掛けるPortSwiggerは2021年1月4日(米国時間)、APIの危険性と対策について解説したブログ記事を公開した。 APIに対する攻撃についての著書をNo Starch Pressから近く出版するコーリー・ボール(Corey Ball)氏へのマット・アトキンソン(Matt Atkinson)氏のインタビューに基づいた内容だ。ボール氏は、公認会計士事務所Moss Adamsのサイバーセキュリティコンサルティングマネジャーを務めている。ブログ記事の概要は次の通り。 APIセキュリティの現状 APIは長年にわたって使われており、成熟したインフラだ。だが、攻撃者の関心は高まる一方だ。近年のマイクロサービスの台頭に伴い、APIエコシステムは複雑さを増しており、昔ながらのセキュリティ問題も相まって、極めて多くの脆弱(ぜいじゃく)性が残っている

    APIの脆弱性はどの程度危険なのか、どうすれば攻撃を防げるのか
  • REST APIを簡単にMockできるツールSmopeckの紹介 - Qiita

    はじめに 最近のウェブアプリではバックエンドをREST-APIとして用意し、 フロントエンドはREST-APIから引っ張ってきたデータをReactVueといったフレームワークで描画することが多いと思います。 このようなウェブアプリを開発する際に問題となるのはバックエンドとフロントエンドを並行して開発しにくいということです。バックエンドができなければフロントエンドはどんなデータが来るのかわからず描画できませんし、バックエンドもフロントエンドからどのようなリクエストが来るか決まらないと実装ができません。 そのため、最初にREST-APIの仕様を定めて、その仕様に沿ったモックサーバを作成し、 フロントエンドはバックエンドが完成するまでそれを用いて開発を進めるということが行われます。 さてそのREST-APIの仕様とはどのように記述されるのでしょうか? 1. 自然言語で記述する 一番よくある場合

    REST APIを簡単にMockできるツールSmopeckの紹介 - Qiita
  • REST API開発に特化したWebフレームワークがもたらす生産性の向上 | IIJ Engineers Blog

    皆さんはREST APIの開発にどのようなフレームワークをお使いでしょうか? これまで、個人的には Flask 等の軽量なWebフレームワークを使って開発することが多く、REST API開発に特化したWebフレームワーク(以下、APIフレームワークと呼ぶ)を使った経験はありませんでした。 しかし先日、業務で Django REST Framework に触れる機会があり、REST APIの実装に必要な機能の多くが提供されていて、圧倒的に少ないコーディング量で開発が完了することを実感できました。例えば、フィルタリング(URLクエリストリングで検索条件等を指定し、取得する値を絞り込む)機能は、一から実装するとなると文字列をパースして、バリデーションして、クエリに渡して……、と結構面倒ですが、Django REST Frameworkではビルトイン機能として提供されているので、最小限のコードで実

    REST API開発に特化したWebフレームワークがもたらす生産性の向上 | IIJ Engineers Blog
  • 【第2回】FastAPIチュートリアル: ToDoアプリを作ってみよう【モデル構築編】 – 株式会社ライトコード

    情報の管理今回のToDoアプリケーションでは、ユーザ情報と各ユーザのタスクを管理する必要があります。 これらはモデルを定義し、データベースに格納しておくことで、コントローラ側とデータのやりとりをできるようにしておく必要があります。 チュートリアルでは、Pythonのデータベース管理ライブラリであるSQLAlchemyを用います。 インストール初めて使う方はインストールしましょう。

    【第2回】FastAPIチュートリアル: ToDoアプリを作ってみよう【モデル構築編】 – 株式会社ライトコード
  • 【第1回】FastAPIチュートリアル: ToDoアプリを作ってみよう【環境構築編】 – 株式会社ライトコード

    (Flaskでは、MVT: Model View Template と呼ばれますが、ほとんど同じです。) もちろん、FastAPIを作るからには、API的要素も加えてみます。 この連載を通して学んでいただきたいことFastAPIの使い方バックで動いているstarletteの使い方Webアプリケーションの作り方記事からスタートする連載「FastAPIチュートリアル: ToDoアプリを作ってみる」では、シンプルなtoDoアプリ作成を通して、上記の3点を学んでいただきたいと考えています。 環境構築それでは、お約束の環境構築から始めていきます! 前提として、Pythonは3.6以上である必要はありますので、アップデートを予めしておいてください。 FastAPIをインストールでは、pipコマンドからFastAPIをインストールしましょう!

    【第1回】FastAPIチュートリアル: ToDoアプリを作ってみよう【環境構築編】 – 株式会社ライトコード
  • FastAPI|DB接続してCRUDするPython製APIサーバーを構築 - Qiita

    今朝起きたらFastAPIなるPython製のAPIサーバー構築ライブラリがバズっていた。 https://fastapi.tiangolo.com/ 簡易的かつレスポンスの早いAPIを構築するときはGoとかNode.jsが有力候補な所、このFastAPIならそれらと同じくらいの速度が出るとのこと。 ということでFastAPIのドキュメントを見ながらDB接続してCRUDできるAPIを作ってみたので成果物をアップしてみます。APIの実装とかほとんど経験が無いのにアップしています。これだから無知は恐ろしい。 サンプルアプリとして、TODOの作成や閲覧、更新、削除ができるようなAPIを作成しました。 インストール 必要なPythonのバージョンはPython3.6以上。 今回のコードはPython3.6.5で動かしています。 必要なライブラリをインストールします。 DBの用意 API作るならDB

    FastAPI|DB接続してCRUDするPython製APIサーバーを構築 - Qiita
  • APIセキュリティ入門(2):APIの認証と認可をスケールする手法 - ZDNet Japan

    印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます 前回は、APIをエッジで処理する有効性について説明した。第2回の稿では、APIの認証と認可をエッジでどのようにスケールさせるかを説明したい。 APIのタイプには、パブリックとプライベートがある。パブリックなものは、誰でもAPIを呼び出すことができ、大概は一定期間キャッシュできるため、コンテンツ配信ネットワーク(CDN)のような仕組みは非常に有効だ。例えば、検索結果を返すAPIは、バックエンドのデータベース情報が変わらなければ常に同じ結果を返すので、エッジでキャッシュできればエンドユーザーの操作性はかなり良くなる。また、毎回オリジンサーバにリクエストが届かなくなるので、クラウド基盤のコンピュータリソースもコスト削減できる。 問題なのは、

    APIセキュリティ入門(2):APIの認証と認可をスケールする手法 - ZDNet Japan
  • 認証を含む API 開発で検討すべきこと - ボクココ

    ども、@kimihomです。 API に関する基礎的な話で、なぜ API が重要なのか、APIの実装で注意する点について記述した。 今回はAPI開発において最も頭を悩ます、認証の問題について考えてみたい。 API における認証 よくあるログインが必要なページを考えてみていただきたい。 通常のWebアプリケーションであれば、Cookieという仕組みを使って毎回Webサーバーにアクセスするときにsession idというものを送信し、それとユーザー情報を紐付けたデータを取ってくることで、どんなユーザーからリクエストが来たのかをWebアプリケーション側で判断することができる。これにより、私たちはいつも閲覧しているWebアプリケーションが自分専用の画面として見れるようになっている。 これがAPIになると話は違ってくる。Cookieという仕組みが使えないのである。ということで、なんとかしてAPIにア

    認証を含む API 開発で検討すべきこと - ボクココ
  • 社内業務システムのWebAPI実装を考えてみる - おかひろの雑記

    今まで仕事上、業務システムを開発してきましたが、ブラウザでアクセスするWebアプリケーションばかりでした。 しばらくはWebアプリ開発も続くでしょうが、ようやくタブレット端末を会社で活用する流れが出てきたので、 せっかく開発したWebアプリにタブレット端末からでもアクセスできるように、WebAPIの実装について考えてみました。 なおjQueryMobileなどを使ったWebアプリにする選択肢もありますが、ここはあえてJSON/JSONPを返すWebAPIの実装を考えます。 仕様 http/httpsアクセスできるものとし、レスポンスはJSON/JSONPで選択できる。 業務システムなので、認証がある。 認証は一度行ったらログアウトなどをしない限り継続する。 認証部分はなるべく簡単に独自実装。 ログアウトも可能。 システムの利用ユーザーを変更する場合はログアウトして再ログイン。 エラーが発生

    社内業務システムのWebAPI実装を考えてみる - おかひろの雑記
  • 1