Open10

apidocのその先

podhmopodhmo

UML

あんまり記憶にないが図示というとUMLを思い浮かべる。個人的には実装との接続がないのでUMLにはあんまり期待していない。メンテされないことが多いので。

とはいえ可視化ということを考えると基本的には以下2つに絞られそう

  • 静的な構造を図示するクラス図
  • 動的な呼び出し関係を図示するシーケンス図

より詳細度が低く上流ではユースケース図のようなものも使われるかもしれない。アクティビティ図(フローチャート)も同様。

どこから何かを引っ張ってくるかを知りたいのだからこれらは適切ではないような気がするを

podhmopodhmo

apidoc

そもそもapidocでは不満だと言っていたがapidocとは何かを明示してなかった。

単純に言えばopenapi docで表せられるようなものだし

https://swagger.io/specification/

sphinx-autodocみたいにdocstringで表せるようなもの。関数定義と一対一のコメントのようなものを思い浮かべれば良い。

https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html#module-sphinx.ext.autodoc

(おそらくここでも機能の紹介というよりは用例をリンクとして貼るべきかもしれない)

pkg.go.devなんかも同様。

https://pkg.go.dev/encoding/json

podhmopodhmo

openapi docに限ればuiやeditorは探せばある。でもあんまり嬉しくない。

  • swagger ui
  • redoc
  • (まだ2,3個あった気がする)
podhmopodhmo

気に入らないui

  • スマホでは厳しいマルチカラム
  • クリックしないと開かないアコーディオン
podhmopodhmo

方針

何を求めるかによって方針は代わる

  • 整合性 integration tests
  • 利用方法の説明 用例/チュートリアル/ガイド
  • 一望したり検索したり ???? (markdown? fuzzy find?)
  • PCではなくスマホでみたい
podhmopodhmo

パッケージ内の依存関係

  • パッケージ内の依存関係
  • パッケージ間の依存関係

前者を考えてみると、特定のパッケージの中でのトップレベル関数は何か?というのが見えてくるかもしれない。

podhmopodhmo

しかし公開されるapiなら概ね全てトップレベルの関数はなのでは?