メモ程度の記事

前提

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
  1. OpenAPI Generatorをインストール
pacman -S openapi-generator
  1. api.jsonをダウンロード
  2. julia-client用にgenerate
openapi-generator-cli generate -g julia-client -i api.json --skip-validate-spec

Validationでerrorが起きたためとりあえずスキップした。 コード3万行、ドキュメント1万行ほどが生成される。

  1. トークンを用意
  2. 使う(ここでは投稿してみる)
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のとは直接関係はないけど)このサイトのコメント機能を普及させる。