メモ程度の記事
前提
Misskey.jlもあるしより簡単に使える。
Misskey APIについて
Misskey API|Misskey Hub : 公式ホームページの説明。
いろいろ操作できる。
各サーバーでhosturl/api-doc
でドキュメントが見れる。
OpenAPIという形式でAPIが定義されてるらしい?
formalな形式(JSON)はhost/api.json
で手に入る。
OpenAPI Generator
https://openapi-generator.tech
OpenAPIによる定義(JSONやYAML)から各言語・フレームワークでのクライアントやサーバーを生成するツール。 Juliaも対応していた。
OpenAPI.jl
https://juliacomputing.github.io/OpenAPI.jl/stable/
OpenAPI Generatorが自動生成したJuliaのコードの中で使われてる。
まとめ
Misskeyのapi-docとOpenAPI.jlのドキュメント(とMisskey Hub)を見ながらやるとよい。
やったこと
環境は
- Arch Linux
- x86-64
- OpenAPI Generatorをインストール
pacman -S openapi-generator
api.json
をダウンロード- julia-client用にgenerate
openapi-generator-cli generate -g julia-client -i api.json --skip-validate-spec
Validationでerrorが起きたためとりあえずスキップした。 コード3万行、ドキュメント1万行ほどが生成される。
- トークンを用意
- 使う(ここでは投稿してみる)
notes_create(
APIClient.NotesApi(
OpenAPI.Clients.Client(
"https://misskey.qwjyh.net/api",
headers=Dict(
"Authorization" => "Bearer tokentokentokentoken",
"Content-Type" => "application/json"
)
)
),
APIClient.NotesCreateRequest(text = "投稿内容")
)
メモ
- Clientは使い回すようのものらしい
- NotesApiに相当するところはたいていClient
- authの方法はMisskey-Hubを見て理解した
- Tab補完がちゃんと効いてる(kwarg含めて)
- structは大体private
これから
何しよう 予約投稿サーバー? (Juliaのとは直接関係はないけど)このサイトのコメント機能を普及させる。