朝日新聞社は4月2日、指定した字数や割合に長文を要約する「長文要約生成API」を開発したと発表した。評価用途に限り、無償で利用できる。会議の議事録や、採用活動で受け付けるエントリーシートの速読などに役立てられるという。
本記事は、Mohammad Faisal氏による「22 Best Practices to Take Your API Design Skills to the Next Level」(2021年4月15日公開)の和訳を、著者の許可を得て掲載しているものです。 REST API設計のための実践的アドバイス Photo by Andrea Piacquadio from Pexels はじめに すべてが分かりにくく、ひどいAPIに不満を感じたことはありませんか?私はそうです。 マイクロサービスの世界では、バックエンドAPIの一貫した設計が不可欠です。 今日は、知っておくべきベストプラクティスについて、簡潔に説明します。さあ始めましょう! 用語 API設計は、リソース指向設計というものに従います。3つの重要な概念で構成されています。 リソース:データの一部(例:ユーザー) コレクション:リソー
アップデートのお知らせ(2022/03/15) 2022/03/15(火)にケンオールをアップデートしました。 アップデート内容は以下のとおりです。 新API: 日本の祝日API 郵便番号逆引き検索API: 品質の改善 祝日や休日のAPIについて、機能要望アンケートを募集中です! 新API: 日本の祝日API 日本における祝日は、内閣府が毎年CSVデータを公開しています。 しかし、システムで祝日データを利用するとき、CSVをダウンロードし、それをシステムにロードするというのは意外と手間がかかります。 手動で更新する場合、手順自体を検証した上で運用ドキュメントを執筆する必要があります。 さらに、手動運用によるオペレーションミスのリスクも毎年つきまとうことになります。 自動化する場合、特別に祝日が移動するケースなどに対応できるようにしなければいけません。結局のところ手動でも更新できるようにして
※この投稿は米国時間 2022 年 12 月 1 日に、Google Cloud blog に投稿されたものの抄訳です。 オンラインで、組み立て式のテーブルを注文したとします。ところが、パッケージを開けてみると、組立説明書が入っていません。完成品がどんなものかはわかっていても、それぞれのパーツをどう組み立てればいいのか、まるでわかりません。設計が不十分な API を使うコンシューマ開発者も、同じような経験をしているといえます。適切に設計された API なら、容易に見つけ、検索してアクセスし、使用することができます。高品質の API は、コンシューマ開発者がアイデアをひらめき、新しいユースケースを作り上げる手助けになってさえくれます。 もちろん、API 設計を改善する方法はあります。たとえば、RESTful のプラクティスに従うなどです。しかし、お客様が知らず知らずのうちに、ちょっとした不便
ここ最近では何らかのインターネットサービスを構築・運用するにあたって、ネットワーク越しのリトライを考えることは避けられなくなりつつあります。 micro services のようなアーキテクチャを採用している場合はサービス間のメッセージのやり取りはまず失敗する前提 (つまりリトライをする前提) で組む必要がありますし、たくさんのクライアントがいてそのクライアントが定期的に何かを処理してセントラルにデータを送ってくる IoT のようなシステムを構築する時もその処理のリトライをよく考える必要があります。 というわけで「ネットワーク越しのリトライ」についてここ最近考えていることをざっくりと書き留めるものであります。 前提 リトライをする側をクライアント、リトライを試みられる側をサーバと呼称します リトライにおいて、サーバおよびネットワークはクライアントよりも弱者です クライアントはリトライをコン
本記事に紹介されているAPIはあくまで一例にすぎないので十分にご注意下さい。他にもAPIがある場合はコメント欄に書き記すようにお願いします。 今回の記事では、個人開発で役立つAPIを紹介する。 Google Play Developer API アプリ購入と公開の2つのタスクがある。 様々な公開タスクとアプリ管理タスクを実行できる Google YouTube Data API YouTubeを検索して動画・再生リスト・チャンネルなどの一覧を取得したり、更新したりすることができる。 検索条件で地域や言語を指定できるが、他の言語も混ざってしまうので「日本語の動画のみ取得する」というようなことはできない。 Google Maps JavaScript API Web上でGoogle Mapを表示してピンを立てたり経路を表示させたりするのに使える 独自のコンテンツと画像で地図をカスタマイズでき、
REST, GraphQL, and gRPC are 3 popular forms client-server and server-to-server communication. Choosing can be difficult, so this concise guide can help. In each section, an example will be provided to illustrate retrieving a user. REST Notes HTTP paths describing data, e.g. /users as a collection of users Easily discoverable data, e.g. user ID 3 would be at /users/3. All of the CRUD (Create Read U
アンケートなどを簡単に制作できるGoogleフォームをAPI経由で作成、編集できる「Google Forms API」が発表されました。 The #DeveloperCommunity has more power! Thanks to the new Google Forms API, you have the ability to build powerful integrations on top of forms. Check out automation use cases https://t.co/3rwg3qr5Vg — Google Developers (@googledevs) October 12, 2021 Googleフォームは、質問項目や選択肢が並んだフォーム画面を作り、公開すると、自動的に結果がGoogle Spreadsheetに集計され、容易にグラフ化など
はじめに 通常のSNSで胡散臭い人が多いと感じてしまいました プログラミングスクールが流行り、エンジニアになって億稼いでます!みたいな・・・ そこで、本当のエンジニア・プログラマしか使えないSNSを作ってみました! つまり、WebApi提供のみのSNSです 一般ピープルが使うようなフロントエンドなんてありません!! Postmanなり、なんなりを使って叩いてください エンジニア・プログラマしかWebApiが叩けないであろうという考えなので、 エンジニア・プログラマにしか使えないSNS!ということです この記事を見ている、プログラマ・エンジニアの方であれば使えますよね?😁 実際、WebApiが叩くことが出来れば誰でも使えてしまうわけですが・・・。 2021/07/20 更新 このWebApiを作ったシステムについて書きました ソースコード公開しました CRUDのWebApi開発は不要!Js
はじめに HTTPリクエストには冪等なものと非冪等なものがあります。 仕様上、GETやOPTIONSは冪等であり、同じリクエストであれば何度行っても問題ありません。そのため通信上エラーが起こっても自動的にリトライすることが出来ます。 一方で、POSTリクエストは冪等ではありません。同じリクエストでも複数回行うと、結果が変わってしまいます。投稿や課金APIであれば2重に処理されてしまいます。 POSTリクエスト中にタイムアウトが発生した時に、サーバに処理される前にタイムアウトしたのか、サーバが処理したあとにレスポンスを返そうとしたところでタイムアウトしたのかクライアントは区別できません。そのため、POSTリクエストを一概にリトライすることは出来ません。 そこで、リトライにより複数回同じPOSTリクエストを受け取っても、同じものと識別できるように識別子をHTTPリクエストに付加できるようにする
こんにちは。サイバーエージェント AI 事業本部 Dynalyst にて、ソフトウェアエンジニアをしている豊田(@helloyuki_)です。また、Rust 領域における Next Experts も務めています。 先日、CA BASE NEXT という CyberAgent が開催する20代が中心のカンファレンス[^1]に、私も一応20代ということで登壇させていただきました。 内容は Web アプリケーション開発を Rust で行った体験談を語るというものでした。実際に2018年〜2020年頃に Rust をとあるチームのアプリケーションに導入し、引き継ぎのために何をしたかという内容をお話させていただきました。 セッション自体は25分しかなく、またコード例をスライドからかなり削るなど、CG スタジオ仕様への対応が必要でした。というわけで、十分に伝えたいことを盛り込めたわけではありませんで
こんにちは!LayerXの mosa_siru (榎本) です。 LayerX インボイスでは、もともと github.com/go-swagger/go-swagger を利用してREST APIを開発していましたが、最近開発したワークフロー機能 のコンポーネントではGraphQLを取り入れました。 GraphQLには様々なメリットがあり、RESTとの比較記事は多くありますが、なぜ僕らは移行したのか、その結果どうなったのかを紹介していきます。 GraphQLのメリット GraphQLのメリットは、様々な箇所で語られています。例えばこの記事によれば、 強力に型付けされたスキーマであること アンダーフェッチとオーバーフェッチがないこと(後述) Apollo, Relayなどの、クライアントライブラリにより、フロントエンド開発が迅速になること 複数のGraphQL APIからの統合が可能 強力
作ったもののイメージ ホテルの客室検索APIとは、チェックイン日やその他の条件を入力として受け取り、マッチするホテルの客室を返すものです。以下の画像はExpediaのものですが、赤枠で囲っている部分(他にもたくさんある)が入力になります。2022年4月頃に無事リリースされました。 この検索APIを構築を任された際に、何を考えて設計していったのかを以下に示していきます。 顧客からの要望 顧客の会社は当時エンジニアがおらず(やりとりしている社長は元エンジニアだが)、これまでも私と仕事をしたことがあったので依頼が来ました。顧客と密にコミュニケーションを取りわかったのは、以下のような要望でした。 このAPIは自社サービスとして第3者(要契約)に使ってもらえるようにしたい 完全に一般公開ではなくちゃんと契約を結ばないと利用できないようなもの 検索条件を柔軟に、かつ使いやすい感じで指定できるようにした
この記事はSmartHR Advent Calendar 2020 11日目の記事です。 僕のお手伝いしているSmartHRでは、毎週バックエンドエンジニアが集まり、技術的なトピックについて共有、相談しあうミーティングを開催しています。そのミーティングでは僕がTipsなどを共有するコーナーが常設されています*1。 このエントリでは、そのコーナーで共有した内容をひとつ紹介します。 APIに制限をかける方法について APIを外部に提供するとき、一定の制限をかけてユーザがAPIを乱用するのを防ぐことはよくあることではないでしょうか。素直に考えると「1時間に5000回までAPIを実行できる」のようなやり方を思いつきますね。GitHubのAPIもそのやり方ですし、SmartHRのAPIも同様です。 じゃあそれでいいのでは。となるかもしれませんが少し待ってください。いろんなクライアントがAPIを大量に
これは 設計ナイト2020 の感想記事です。 CQRS と GraphQL の話が主な話題でしたが、ディスカッションなどで示唆に富む話を聞けたので、(レポートというよりも)考えたことを書き残しておきます。 発表内容についてはあまり書きませんが、すでに 設計ナイト2020感想 - Qiita と 設計ナイト2020に参加してきました。 | achanBlog という記事があります。 Q&A やディスカッションについても #sekkeinight 付きのツイートを見ると、何が交わされたか把握できると思います。 コンテキスト DDD・CQRS・GraphQL・アーキテクチャの進化戦略などについて深い話(触ってみたレベルでなく実運用等を経たもの)についても興味深かったのですが、サーバー再度にとっての理想的なモデルとフロントエンドの要求が衝突する境界線について考えるきっかけになりました。もしかしてサ
※この投稿は米国時間 2022 年 12 月 1 日に、Google Cloud blog に投稿されたものの抄訳です。 オンラインで、組み立て式のテーブルを注文したとします。ところが、パッケージを開けてみると、組立説明書が入っていません。完成品がどんなものかはわかっていても、それぞれのパーツをどう組み立てればいいのか、まるでわかりません。設計が不十分な API を使うコンシューマ開発者も、同じような経験をしているといえます。適切に設計された API なら、容易に見つけ、検索してアクセスし、使用することができます。高品質の API は、コンシューマ開発者がアイデアをひらめき、新しいユースケースを作り上げる手助けになってさえくれます。 もちろん、API 設計を改善する方法はあります。たとえば、RESTful のプラクティスに従うなどです。しかし、お客様が知らず知らずのうちに、ちょっとした不便
概要 本APIは、入力された記事本文(最大2,000文字まで入力可能=製品版)を機械学習を用いて要約するものです。過去30年分の記事データを、ディープラーニングの機構を用いて学習させています。長文を要約するときにお役立てください。 本APIの機能は、 指定した長さごとに生成型要約 すべての文の長さを揃える すべての文を圧縮する 重要な文を抽出する 重要な文を抽出後圧縮して、指定した長さにする の5つです。より詳細はこちらに解説記事を載せています。 九州電力玄海原発3、4号機(佐賀県玄海町)の運転差し止めを住民らが求めた仮処分申し立ての即時抗告審で、福岡高裁(山之内紀行裁判長)は10日、住民側の抗告を棄却した。主な争点は、耐震設計の基になる基準地震動(想定される最大の揺れ)の合理性、原発周辺の火山の噴火リスク、配管の安全性の3点。 住民側は「基準地震動が過小評価されている」と主張。原子力規制
Developers can now integrate ChatGPT and Whisper models into their apps and products through our API. ChatGPT and Whisper models are now available on our API, giving developers access to cutting-edge language (not just chat!) and speech-to-text capabilities. Through a series of system-wide optimizations, we’ve achieved 90% cost reduction for ChatGPT since December; we’re now passing through those
1. OpenAI APIのモデル「OpenAI API」は、用途に応じて「GPT-3.5」をはじめとする様々なモデル を提供しています。 ・GPT-3.5 : 自然言語とコードを理解および生成する最新モデル。 ・DALL-E : 自然言語から画像を生成・編集するモデル ・Whisper : 音声をテキストに変換するモデル ・Embeddings : 埋め込み (ベクトル表現) を生成するモデル ・Codex : コードを理解および生成するモデル ・Moderation : センシティブおよび 安全でない文章を検出するモデル ・GPT-3 : 自然言語を理解および生成する旧モデル 2. GPT-3.5「GPT-3.5」は、自然言語とコードを理解および生成する最新モデルです。最も高性能で費用対効果の高いモデルは、チャット用に最適化されていますが、既存タスクにも適している「gpt-3.5-tu
はじめに 皆様こんにちは、株式会社プラハのAwataです。 今日は、以前書いたリーダーの振り返り記事で軽く触れていた、RustでのAPI開発についての記事を書いていこうと思います。 結論RustでWebは辛い!という話なんですが、約5か月くらいRustでWeb開発をしたので、今後の参考になるようなことを書いていこうと思います。 ぜひ最後までお付き合いください。 TL;DR RustでWeb開発はまだ早いかもしれない。 RustでDDDはやりやすい。ただしDIがやりにくい場合があるので、そこは要注意。 Rustはモジュールの仕組みが協力なので、モジュラモノリスはやりやすい。 サンプルリポジトリはこちら Rustはやっぱり難しいけど人気の理由も少し分かった気がする そもそもなぜRustでやってみようとなったのか 前例が少ない中、どうしてRustで開発しようと思ったのか気になる方も多いと思います
はじめに NearMeでは最近、相乗り配車サービスのための外部向けAPIプラットフォームを構築しました。 これにより、他アプリからシームレスに注文したり、Lineミニアプリのような新しいチャネルのUIを独自に構築することを可能にしました。 その設計においては様々な考慮が必要でしたので、ここにまとめたいと思います。 提供方法 APIを利用するにはまず、外部連携先の"組織"を作成し、登録した"組織"で「〇〇 地域シャトル」「〇〇スクール送迎」などの"サービス"を作成します。これにより、ユーザー管理、車両管理、注文管理などが管理画面から利用できるようになります。マルチテナント方式なので専用の"サービス"が構築されます。 次に、API連携に関する基本情報を格納する"アプリケーション"という項目を作成します。 認証情報やWebhookのURLなどもここで設定します。 この"アプリケーション"のIDが
Developing automations requires a paid plan. Don't have a paid plan? Join the Developer Program and provision a sandbox with access to all Slack features for free. Automations are all about workflows. Developers can create workflow-based apps using certain Slack SDKs and the Slack CLI. The Slack CLI helps you through the entire app creation process - from initialization to deployment. You can crea
Real World HaskellA lot of people think day-to-day tasks like running a web app are difficult or impossible in Haskell! But of course this isn't true! In our Real World Haskell series, we'll take you through a whole slew of libraries that allow you to write a web backend. These libraries use Haskell's features to approach things like database queries and API building in unique ways. Part 1: Databa
Editor's Note: This is another installation of our guest blog posts highlighting interesting and novel use cases. This blog is written by Shroominic who built an open source implementation of the ChatGPT Code Interpreter. Important Links: GitHub RepoIn the world of open-source software, there are always exciting developments. Today, I am thrilled to announce a new project that I have been working
はてブのブクマページにはIDがある。 htmlタグのdata-entry-eid属性に書いてある数字である。はてなブックマークエントリー情報取得APIでも取得できる。 これをエントリーIDと呼ぶ。 各ユーザーのブクマのURLは以下のようになっている。 https://b.hatena.ne.jp/entry/{エントリーID}/comment/{ユーザーID} あるいはユーザーのブクマ一覧中のブクマにアクセスする以下のURLもある。 https://b.hatena.ne.jp/{ユーザーID}/{日付}#bookmark-{エントリーID} ところがこのエントリーIDは1つのエントリーに複数存在する可能性がある。 たとえば以下のブクマページ。 https://b.hatena.ne.jp/entry/s/nordot.app/1211910352128279184 エントリーIDは476
フィードバックを送信 Google Meet REST API の概要 コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。 Google Meet REST API を使用すると、Google Meet の会議を作成して管理できます。また、アプリから直接ユーザーにエントリ ポイントを提供できます。 Meet REST API を使用すると、次のことができます。 ビデオでユーザーをつなぐ会議スペースを作成します。 リソース名を指定して会議スペースまたは会議を取得します。 参加者と参加者のセッションのリストを取得します。 会議のアーティファクト(録画、文字起こし、文字起こしエントリ)を取得する。 Google Workspace Events API を使用して Meet イベントに登録することもできます。変更を通知するには、特定の会議スペースまたは特定のユーザー
7月28日、APIインフラストラクチャは使命上重要であることを強調する発表を行いました。 APIはあらゆる産業を革新し、デジタルトランスフォーメーションを推進し、グローバルなインターネットトラフィックの83%以上を占めています。 しかし、APIはセキュリティ上の課題を抱えており、サイバー攻撃の標的になっています。 この記事では、API関連のセキュリティインシデントの増加とコストの上昇、およびAPIが使命上重要なインフラストラクチャである理由について説明します。 詳細は以下の通りです。 7月27日、API管理とマイクロサービスAPIゲートウェイを提供する企業Kong(コング)が、APIのインフラストラクチャがますますミッションクリティカルであると指摘する発表を行いました。APIは世界のあらゆる産業に革命をもたらし、デジタルトランスフォーメーションを推進する上で不可欠な要素であり、全世界のイン
sunabar -GMOあおぞらネット銀行API実験場-は、当社口座をお持ちの方であれば、どなたでも仮想のインターネットバンキング上で、開発されたアプリケーションを無料でお試しいただけるサンドボックスです。 その他、「エンジニアコミュニティ」、「開発支援」、「資金調達支援」などの機能を提供しています。 sunabarポータルサイト ログイン 個人口座を開設して sunabarをはじめる* sunabarの利用開始方法 *sunabarのご利用には当社口座(個人・法人いずれか)が必要です。 「sunabar -GMOあおぞらネット銀行 API実験場-」とは 組込型金融(エンベデッド・ファイナンス)のスモールスタートの検証が可能! sunabarは、昨今話題の「組込型金融」に興味があるけれど、具体的に何から始めてよいのか分からない方にも、まずは「銀行API」の可能性を「銀行API実験場」で体験
An API for accessing new AI models developed by OpenAI
PythonのWeb frameworkで、Flaskのようなマイクロフレームワークにあたります。 パフォーマンスの高さ、書きやすさ、本番運用を強く意識した設計、モダンな機能などが強みです。 FastAPIはStarletteの肩に乗る形で書かれており、非同期処理が扱いやすいです。 特に、以下の様な特徴があります。 ASGI websocketのサポート GraphQLのサポート バックグラウンドプロセスが扱いやすい python type hintによる自動ドキュメント生成 (Swagger UI) pydanticをベースとしたdata validation 率直に言って、responderに非常に似ています。(でた時期も近いですし、responderもStarletteがベースなので) ですが、下の2つはFastAPIの方がよっぽど使いやすく設計されています。 以下の観点から総合的に
Welcome AIPs are design documents that summarize Google's API design decisions. They also provide a framework and system for others to document their own API design rules and practices. AIPs are a combination of design guidance and a system we use to manage and track that guidance. Learn more about how the AIP program works in the first AIP!
Nature Remo には、ローカル用の API が用意されています。 サーバ障害時やインターネット接続障害時でも、Local API 経由であれば利用可能です。 ※以前の記事で触れた Cloud API とは別物 公式サイトの Swagger に詳細が記載されています。 https://local-swagger.nature.global/ Remo で登録済みのリモコン信号はサーバ側に保存されているらしく、今回使用するローカルから呼び出すことはできません。個別に赤外線信号を指定する必要があります。 IP アドレスを調べるRemo の持つ IP が分かっていればスキップ可能。(ルータの管理画面で調べるのが楽) まずはじめに、Remo が利用しているホスト名を確認。dns-sd -B _remo._tcp で検索できます。 $ dns-sd -B _remo._tcp Browsing
Models More Solutions More Code assistance More Showcase More Community More Gemini About Docs API reference Pricing Gemma About Docs Build with Gemini Gemini API Google AI Studio Customize Gemma open models Gemma open models Multi-framework with Keras Fine-tune in Colab Run on-device Google AI Edge Gemini Nano on Android Chrome built-in web APIs Build responsibly Responsible GenAI Toolkit Secure
import google.generativeai as genai genai.configure(api_key="YOUR_API_KEY") model = genai.GenerativeModel("gemini-1.5-flash") response = model.generate_content("Explain how AI works") print(response.text) Node.js const { GoogleGenerativeAI } = require("@google/generative-ai"); const genAI = new GoogleGenerativeAI("YOUR_API_KEY"); const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" }
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く