サーバーサイドエンジニアの松木 (@tatsuma_matsuki) です。 セーフィーではいくつかのサービスでFastAPIを使った開発を行っています。FastAPIでは、Pydanticというライブラリを使ってリクエスト・レスポンスのモデルのバリデーションなどを実装することができます。このPydanticというライブラリですが、近いうちにメジャーバージョンアップのリリースが予定されており、これによりモデルのバリデーション処理が高速化されることがアナウンスされています! 以下のページによると、Pydantic v2はv1に比べて4倍~50倍の性能向上があると書かれているので、これは期待してしまいます。 https://docs.pydantic.dev/latest/blog/pydantic-v2/#performance そして、Pydanticを利用するFastAPIでも2023/
昨年12月にCloudflare Worker + D1 + Hono + OpenAIでLINE Botを作るという記事を書いた。その時はJavascriptで書いていたが、この方面はPythonで物事を進めた方が何かと便利なので、今回はFastAPI + ChatGPTのAPIを使って似たようなLINE Botを作成してみた。また、Cloudflare WorkerではPythonのアプリを動かせない(しにくい)のでFly.ioで動かすのも試してみた。以下ではそのざっくりとした流れとコードとメモみたいなものを書いている。 ※ちなみに概ね詳細はCloudflare Worker + D1 + Hono + OpenAIでLINE Botを作ると被る部分が多いので色々と省略してる。 Echo Botを作る とりあえずはまずはLINEで動くEcho Botを作るところからやってみる。何事も最
こんにちは、けんにぃです。ナビタイムジャパンで公共交通の時刻表を使ったサービス開発やリリースフローの改善を担当しています。 今回は Python 製の Web フレームワークとして FastAPI を導入した話をしようと思います。 Python 製の Web フレームワークPython には代表的な Web フレームワークが 2 つあります。 ・Django: フルスタックフレームワーク ・Flask: マイクロフレームワーク Django は大規模開発向け、Flask は小中規模開発向けと言われますが、今回開発したサーバは小規模なサーバだったため、以前は Flask で開発していました。 しかし、どちらのフレームワークを使う場合でも下記のような機能を使おうとするとプラグインやサードパーティの助けを借りる必要があります。 ・OpenAPI ・JSON Schema ・GraphQL ・We
これはなに? FastAPIっていういい感じのpythonのAPIフレームワークがあって使っているのだが,公式ではSQLalchemyしか連携していない.ASGI関連の整備が遅れている(?)せいでDjangoとのあれこれがよくわからん状態らしい(伝聞推定) で,どうにか先駆者はいないかと探したところ,すでに議論があった. [QUESTION] How to use fastapi with Django ORM ? · Issue #716 · tiangolo/fastapi ここでおすすめされているやり方について,おそらく色んな人がDjangoをやってRestAPIに挑戦するもDRFに敗れるという経験をしているだろうことから,それよりもとっつきやすいであろうFastAPIでの再挑戦を促す意味で全文訳してみた.(と,いってもほぼすべてをみらい翻訳にかけただけなのだが……笑) 追記 (20
Intro Pythonで実装した機械学習や画像処理をバックエンドにしたWebアプリをサクッと作るための技術スタックとして、FastAPI+TypeScript+OpenAPIを紹介します。 モチベーション PythonでサクッとWebサーバ(APIサーバ)を立てたい 今まではFlaskを使ってたような用途 「Pythonで」 機械学習・画像処理のサービスなので 「サクッと」 バリデーションとか楽したい サーバ、クライアント共に型の保証が欲しい 機械学習や画像処理のアプリはパラメータが多くなりがち・一貫した慣習が無いのでミスしやすい width or w 値の範囲は[0, w] or [0, 1] ? →型アノテーションでカバーしたい やりたいこと API endpoint公開 メディアファイルアップロード・ダウンロード Additional: 非同期通信、WebSocket 検討した選択
こんにちは、沖縄在住の下地です。コロナの影響でリモートワークになり早一ヶ月経ちました。家で業務をするというのは違和感はあるのですが通勤しなくて良いというのはとても魅力的だなと思い始めてます。 本日はPythonのフレームワークであるFastAPIについて興味がありEC2で実装したのでまとめたいと思います。 全体像 EC2でFastAPIを実装し、Amazon RDS(RDS)と接続し、CRUDのAPIを作成します。EC2とRDSは起動している状態からスタートします。 開発環境 環境としては以下の仕様で行います。 python: 3.7.6 sqlalchemy: 1.3.15 OS: Amazon Linux 2 AMI (HVM), SSD Volume Type MySQL Community Edition: 5.7.22 EC2のセキュリティグループ設定 EC2でFastAPIを実
はじめに 最近ハイボールにハマっているSREのたっち(@TatchNicolas)です。 昨日オンライン開催されたJAWS DAYS 2020にて、JX通信社もサーバレスをテーマとして発表をしました。(by 植本さん) 発表でもありましたように、上記プロジェクトにおいて開発当時はスピードを優先してプロジェクトメンバーの手に馴染んでいて分担もしやすいフレームワークとしてFlaskを採用しました。 一方で、JX通信社としてはFlaskよりもFastAPIを使うプロジェクトが増えてきており、今後もその傾向は続く見込みです。 そこで、特設ページ作成やAPI提供など初動としての開発が一段落したのを機に、JAWS DAYSで発表した仕組みを今後のために発展させる検証をしたので紹介します。 TL; DR; JAWSでは Serverless Framework+awsgi+Flaskな構成でスピーディに
FastAPI is a modern, fast (high-performance), web framework for building APIs with Python 3.6+. It is one of the fastest Python frameworks available, as measured by independent benchmarks.It is based on standard Python type hints. Using them, you get automatic data validation, serialization, and documentation. Including deeply nested JSON documents. And you get editor completion and checks everywh
Python Types Intro¶ Python has support for optional "type hints" (also called "type annotations"). These "type hints" or annotations are a special syntax that allow declaring the type of a variable. By declaring types for your variables, editors and tools can give you better support. This is just a quick tutorial / refresher about Python type hints. It covers only the minimum necessary to use them
mangum を使うと FastAPI や responder といった ASGI アプリケーションを AWS Lambda + API Gateway 上へ簡単にデプロイすることが出来ます。 今回は FastAPI で書いた ASGI アプリケーションを mangum を使って AWS 上でデプロイする手順をメモしておきます。 mangum init の注意点 最初に mangum init する ハンドラは app/asgi.py に定義する mangum のプロジェクト名は AWS ルールに準拠したものにする mangum cli には削除機能が無い プロジェクトディレクトリを作成する mangum-cli をインストールする AWS CLI をセットアップする AWS S3 上に Bucket を作成する デプロイ用の設定ファイルを作成する requirements.txt を修正
久々に開発ネタです. 大晦日ハッカソン2019 #大晦日ハッカソンで, 野球のデータをシュッと見るためのDashboardを作る(理由は後ほど). そんなDashboardのBackend APIをシュッと開発する. を目標に立て現在進行系でやってるのですが, 午後の進捗その2 Docker化が特に滞りなく完了. API Docも見れるとかFast API強すぎぃ 昨日の夕方から開発してたAPIはアッサリ1st Ver.できたので, 大晦日の買い物終わったらフロントエンドを除夜の鐘が鳴るまでになんとかするぞ #大晦日ハッカソン pic.twitter.com/wWMiSvQDKu— Shinichi Nakagawa (@shinyorke) 2019年12月31日 Backendを昨日(12/30)の18:00から着手して(実質作業時間)約5時間ちょいで完成させてしまいました. 本年最後
(今更ですが)新年あけましておめでとうございます! JX通信社でシニア・エンジニアをしています, @shinyorke(しんよーく)と申します. 最近は週に2, 3回, ジムで10kmちょい走っています.*1 JX通信社のエンジニアチームでは, 月に一度みんなが集まる月次勉強会というイベントがあります(基本的に第2金曜日開催)*2. tech.jxpress.net ※過去の開催レポです 2020年初(かつ, 飯田橋オフィス最後*3)の勉強会は, 「普及したいことや年末年始に勉強したことなどを発表するLT大会」 ということで, 私は デブサミ2020登壇時に披露するデモアプリを披露 弊社プロダクトでも使っているFastAPI僕もやりました&Nuxt Core UI ええやで!っていう布教 (ちょっとだけ)野球選手の評価指標を紹介 という発表をさせてもらいました. このエントリーではそんな発
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 以下のPython Web frameworkを使って単純なAPIを立てて、負荷試験をしてみました。 Django (2.X) Flask FastAPI responder japronto 結果的に、ざっくりと以下が分かりました! performanceは「japronto >>> FastAPI > responder >>> Flask ~ Django」だと言えそう FastAPIとresponderはsingle workerだと秒間100~1000程度のrequestであればpython界で圧倒的なperformanceを
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く