0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

OpenAPI Generatorを使ってライブラリを生成しているサービスについて調べてみた

0
Posted at

はじめに

OpenAPI Generatorを使っている各社サービスがどのようにクライアントライブラリを生成しているのか調べてみた。

OpenAPI Generatorのサイトに、利用しているサービスの一覧が載っている。

ここからいくつかピックアップして、どのようにクライアントライブラリを生成しているか調べてみた。

注意

  • 今回は、各社のパブリックリポジトリや公開ドキュメントなどをみて、そこから推測される方法をまとめたため、実際とは異なる場合がある。
  • 例としてピックアップしたライブラリは、基本Pythonが中心となっている (個人的にPythonを利用することが多いため)。

Kubernetes

JavaやPython、TypeScript, Go、Rustなど、主要な言語のライブラリを生成。

Generate用のリポジトリで管理。

このリポジトリで生成用のスクリプトや設定値を管理し、各言語のライブラリを生成。

Python用のライブラリ

また、HostやAPI Keyの設定は、デフォルトの直接指定する方法に加えて、kubeconfigファイルをロードするためのHelper関数 config.load_kube_config() も別途カスタムで実装されている。

DataDog

JavaやPython、TypeScript, Go、Rustなど、現在主流な言語のライブラリを生成。

Python用のライブラリ

Keyは別途API keyをDataDogの画面から取得して使う。

生成については、Spec fileを管理しているプライベートリポジトリにて、更新があったら各クライアントライブラリも自動で生成されるようになっている。

また、OpenAPI Generatorを拡張した「Apigentools」というツールで生成をおこなっており、これはDataDogがcontributorとして開発している様子。

Mastercard

公開されているリポジトリにはJava, Python, NodeJS, Ruby, PHP, C#のライブラリが存在しているが、基本的にはSpec fileを用いてOpenAPI Generatorで各自で生成するように案内されている。

Guide

Tutorial (ここにサンプルとして生成されたライブラリコードが格納されている)

API利用のためのKey生成 (one-legged OAuth 1.0a) は、別ライブラリが用意されている。

Twilio

JavaやPython、NodeJS, Goなどの主要な言語のライブラリを生成。

Generate用のリポジトリで管理。

各言語ごとに実行ファイルを実行して生成。Kubernetesのように自動生成されている形ではなさそう。

Python用のライブラリ

Freee

Freee APIのSpec fileが公開されており、それを用いて各自で生成するようガイドしている。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?