はじめに 今回はogenに限った話しというよりか、GoにおいてOpenAPIのコード生成を使った実装に関する感想になりますのでご留意ください。 コードの自動生成ができると何がいいのかというのは以下の通りです。 ただの作業になりがちなモデルの作成が自動化できる 仕様書通りにモデルや API インターフェースが自動生成されるので、バグが入りにくい 仕様書通りのリクエスト・レスポンスかどうかを簡単にバリデーションできる その結果、ビジネスロジックに集中する開発ができる 出典:[Go] OpenAPI コード自動生成でビジネスロジックに集中する開発へ #echo - Qiita 導入背景 現在参画して…
UPSIDERでエンジニアをしている太田です。 (@Hide55832241) この記事ではZodとOpenAPI Generatorを使用し、日付文字列をBrand型で扱う方法について紹介します。 TypeScriptを使用したフロントエンドのアプリケーション開発で日付をstring型で扱う際に困ることがあります。 日付をstring型として扱う際、APIから返却された未フォーマットの文字列と、UI用にフォーマットされた文字列を区別することが難しく、誤った表示や変換処理が発生しがちです。 またAPIリクエストでは正しいフォーマットで送信されているかどうかを保証できないため、不具合の原因になる…
はじめに 対象読者 TL;DR OpenAPI Specificationとは OASを導入することの何が嬉しい? 1. プロダクトごとにAPI仕様書を記述するツールやフォーマットがバラバラでスイッチングコストがかかる 2. 記述量が増えると動作が重くなる 3. API仕様変更の伝達漏れの多発 導入までの課題 1. OASの調査に時間をかけすぎた 2. OASのデメリット全てに対応策を講じようとしてしまったこと 導入して1年、開発環境は改善されたのか? おわりに はじめに ラクスフロントエンド開発2課の斉藤です。 ラクスの開発するプロダクトである楽楽明細、楽楽電子保存、楽楽請求ではOpenAP…
はじめに vermeer.hatenablog.jp でOpenAPI(MicroProfile)の実装をしてみましたが、もう少し楽ができるようにしたいと思いました。 かといって実装そのものを拡張したり大がかりなものをつくるほどでも無い「程よい程度に」拡張をしてみました。 はじめに 拡張ポイント プロジェクト全体の定義 オブジェクトのSchemaを追加 なにがうれしいか 実装 @ExampleObjectにjsonを指定 なにがうれしいか 実装 モックとしてjsonを使用する なにがうれしいか 実装 Code さいごに 拡張ポイント プロジェクト全体の定義 OpenApiModelReader…
こんにちは、エキサイト株式会社の平石です。 今回は、OpenAPI Generatorで自動生成したAPIクライアントをコンパイルせずに利用する方法をご紹介します。 はじめに 環境 手順 1. これまでの方法で一旦生成する 2. 生成したファイルを実行するために必要な依存関係を確認する 3. 依存関係を自身で管理するbuild.gradleに追加する 4. OpenAPI Generatorの設定を確認、適宜変更し再生成する 5. 不要なファイルを削除する 動作確認 終わりに 参考文献 はじめに OpenAPI Generatorと、Javaでの基本的な利用方法は以下のブログをご覧ください。 …
新規プロダクトのリポジトリ構成にモノレポを採用してみた お久しぶりです,DELISH KITCHEN開発部でSoftware Engineer(SE)をしている鈴木です. every Tech Blog Advent Calendar 2024(夏) の15日目を担当する事になりましたので,鈴木が開発に携わっている新規プロダクトで採用しているリポジトリ構成についてお話させていただきます. はじめに 私事ですが,夏の兆しを感じ始めたタイミングでトモニテ開発部からDELISH KITCHEN開発部に異動しました. 異動後も新規プロダクトの開発に携わっており,有り難いことに大部分を任せていただいてい…
はじめに OpenAPIの定義をDSL的に使って、Karateのfeatureを自動生成するVSCodeの拡張です。 基本的な使い方は拡張機能のサイトにある動画を見るのが分かりやすいので割愛します。 marketplace.visualstudio.com ここでは自動生成された資産についての補足です。 認可トークンのファイルの出力場所 OpenAPIで認可トークンありにすると、その辺りの資産も自動生成してくれます。 karate-auth.js に認可トークンに関する共通の設定を記述できます。 ただ、このファイルの生成先のディレクトリがプロジェクトのルートでした。 これだとfeatureから…
こんにちは、プロダクト開発部コアグループの井上です。 コアグループでは、次世代ECの開発を行っています。 現在makeshopでは、決済画面をリニューアルするプロジェクトが進行しており、4月に第一弾がリリースがされました。 今回はその中でのOpenAPI(3.0)を活用した開発を紹介したいと思います。 概要 コード生成 packageの指定 生成対象の指定 フィールドのオプション x-go-type x-oapi-codegen-extra-tags ドキュメント コード生成のカスタマイズ 1. カスタムテンプレートを利用する 2. 生成されたGoのコードをいじる ハマったところ まとめ pa…
はじめに PayaraでOpenAPI-UIをつかって、WebAPIの仕様と実行インターフェースを準備する実装です。 軽く触ってみた感じの実装例や、Quarkus(MicroProfileの実装)を使ったものはあったのですが標準仕様だけの範疇だけでできるものはなかなか見つからなかったので色々と試しながらやってやってみました。 メインをOpenAPIにするのでJAX-RS(Jakarta RESTful Web Services)についての説明は割愛します。 はじめに 実行環境 やってみて思ったこと・わかったこと OpenAPIの記述は実装よりも優先 アノテーションで出来ないときはコードで作り込…
こんにちは。 株式会社アドグローブ ソリューション事業部の内田です。 私は社内のもくもく会という勉強会に参加していて、そこでフロント開発の勉強をしています。 本記事では、もくもく会でモックの実装をした際に使用した「OpenAPI Generator」と「Json Server」についてご紹介します。 少しでもお役に立てれば幸いです。 今回の記事を読まれるにあたり、弊社ブログで金さんが書かれた記事をご紹介させていただきます! 私はこの記事を参考にOpenAPI Generatorの実装ができました。とても理解しやすい内容となっていますので、ぜひご覧になって下さい。 blog.adglobe.co…
はじめまして。id:takanamitoです。 バックエンドエンジニアとしてTVerに入社して3ヶ月が経ちました。 TVerに入ってみて感じたこと、開発組織が何に取り組んでいるのか書いてみようと思います。 TVerのオンボーディング ドキュメントをたくさん書く文化を広める たくさん質問・相談する TVerが取り組んでいる開発とは この先やりたいこと
■楽天カード及びみずほフィナンシャルグループによる戦略的な資本業務提携の検討についてのお知らせ https://corp.rakuten.co.jp/news/press/2024/0930_12.html https://corp.rakuten.co.jp/news/press/2024/0930_11.html ■ホリエモン:みずほFGが楽天カードに出資する件について解説します https://youtu.be/69a-2mYrHmU?si=KgV9s-eshWzAEaBc ■インタビュー:楽天抜きでは口座「どんどん減る」、連携さらに拡大へ=浜本・みずほ証社長 https://news…
1週間(2024/09/22 ~ 2024/09/29):gRPCについて学習したのでそのレポート的なものを記述する。 参考文献 スターティングgRPC | インプレス NextPublishing gRPC gRPCとは? RPC (Remote Procedure Call)を実現するための実装の一つ。googleが開発した。 RPCとは リモートの機能を呼び出すための技術。似たようなものにRESTなどが挙げられる。 RESTとの違い HTTP/2による高速通信 バイナリによる通信のため通信帯域が少なめ ストリーミング通信 インターセプタによるgRPCのメイン処理前後への処理埋め込み (認…
xpjug.connpass.com オープニング …いつもながらよい雰囲気。ふわ〜っと始まってました…。 メモ ‐ なんかめっちゃいいことを言ってるけど、妙に気が抜けているというか… - いい掛け合いで、よい雰囲気です。 - この話を聴いていて、CIで取っているテストカバー率…見てなかったなぁ…。価値が提供されている実感があるので、ちゃんと見るようにしようと思います。 - 自動生成したOpenAPIのライブラリを入れたら、カバー率がめっちゃ下がったのにしばらく気づいてませんでした。 - 急激な変化にちゃんと気づいて、直していくのも大事ですよね…。 基調講演 Extreme Programmi…
MuleSoft アソシエイト試験を受験することにしたので、PDFで配布されている練習問題をChatGPTで翻訳しました。 SECTION4は「一般的な技術的複雑さとパターンを説明する」です。
MuleSoft アソシエイト試験を受験することにしたので、PDFで配布されている練習問題をChatGPTで翻訳しました。 SECTION2は「重要な統合概念と用語を認識して解釈する」です。
はじめに こんにちは。株式会社ZOZOのSRE部プラットフォームSREチームに所属しているはっちーと申します。 本記事では、Kubernetesクラスター上にモックリソースをサクッと構築する「モック構築ツール」を紹介します。ZOZOの事例をもとにした説明となりますが、Kubernetesクラスター上での負荷試験やフロントエンド開発などの効率化において広く一般的に活用できるツールのため、OSSとして公開しています。GitHubリポジトリは以下です。 github.com 本ツールは、私個人のOSSとして管理しています。ZOZOでは、社員がOSS活動しやすいように、「業務時間中に指示があって書いた…
始めに PydanticにはJsonという便利な型があります。便利ではあるのですが、素のJson型では開発しづらい点があったので自分のアプリケーションでは拡張して使っています。 今回の記事では何に困ったのか、どのように拡張したのかを記載します。 環境 Python 3.12.4 FastAPI 0.114.2 Pydantic 2.9.1 ユースケース フロントで自由なデータ構造を定義してバックエンドとしては単純に保存する。また、フロントで取り出せるようにバックエンドで保存したデータ構造をフロントに返却する。 困ったケース PydanticのJsonで定義するとフロントで定義した自由なデータ構…
こんにちは。虎の穴ラボ エンジニアの古賀です! 今回は、OpenAIの『Assistants API』を業務(ソースコードの調査や工数の見積もり)に活用した事例を紹介します。 はじめに これを試してみようと思った経緯としては、業務で大量のPHPのソースコードファイルについて、PHPのバージョンアップに伴う作業工数の見積もりを行うことになりました。 すべて人手で調査をするととても時間が掛かることが予想されたので、その際にPythonのプログラムとAssistants APIのFile Searchを使って、ソースコードファイルの仕様や概算の必要工数を出力するCLIのプログラムを作成し、ソースコー…
本日は Python の FastAPI framework の構築メモです Vue.js や Nuxt.js, Next.js など Web Frontend F/W を使うときは、 基本的なディレクトリ構成は完成した状態でプロジェクトが作られる のに対し、 FastAPI は main.py があれば出来てしまうくらい小さな構成からスタートだったので、一般的にどういった形になるのかを調べた記録です。
RustのWebアプリケーション開発に関する書籍を共著で執筆しました。1年くらい執筆していましたが、出版時期などが定まってきたので内容の紹介を込めて告知の記事を書きます。9/26刊行予定です。予約よろしくお願いします。 RustによるWebアプリケーション開発 ↓AmazonのURL(アフィリエイトなし) www.amazon.co.jp 数年前に書籍を執筆した際に、「次はWebアプリケーションの実装に関する本を書きたい」と記事に書き残していたのを今見つけたのですが、有言実行できたようです。 どんな本か? Rustってバックエンド開発に向いてるの? 著者について 目次とトピックの簡単な紹介 は…
誰が何と言おうと、私はAnt派です。 というわけでIvyIDEAが必要なのですが、とうとう2024.3で動かなくなってしまいました。 java.lang.Throwable: 'module' is requested on EDT by ResolveForActiveModuleAction#presentation@ProjectViewPopup (org.clarent.ivyidea.ResolveForActiveModuleAction). See ActionUpdateThread javadoc. というエラーになります。で、なんとかしてみたらなんとかなりました。 (1)…
クラメソおおさか IT 勉強会 Midosuji Tech #2 #midosuji_tech クラメソおおさか IT 勉強会 Midosuji Tech #2 #midosuji_tech - connpass セッション LT1「ブラウザ上で実行され、AIアシスタント付きデータベース postgres.new を触ってみた」 西田将幸 さん Supabaseが作ったブラウザで実行されるAIアシスタント付きPostgreSQL スキーマの自動生成 自然言語でクエリ、グラフ作成、データ投入できる 生成されたSQLの確認もできる 「売上トップ3だして」とかでグラフ作成 「サンプルデータ追加して」…