フローチャートを使用したRESTインターフェースの文書化


9

RESTスタイルのWebインターフェースのフローチャート表現の作成に関する提案はありますか?共同開発者に完全なドキュメントを提供するために、製品リソースを変更および生成するためのインターフェースをモデリングするために、いじくり回してきました。

ここに画像の説明を入力してください

この特定のシステムは、ユーザー認証/リソース数によって異なる動作を開始するため、変更を加える前に、いくつかの明確化を探しています。

  • 複雑さ:全体の構造を単純化してこれを読みやすくするにはどうすればよいですか?
  • 表示記号:これはページを表すのに適していますか?
  • 手動操作記号:これは、ボタンクリックなどのユーザーアクションを表すのに適していますか?

他の提案は大歓迎です。

再投稿をお詫び申し上げます。メインのstackexchangeサイトは、この質問はプログラマーにより適切に提示されることを示唆しています。

回答:


12

メッセージシーケンスチャート/シーケンス図は、RESTful APIの相互作用を文書化するのに適していると思います。あなたが持っているのは状態図ですが、RESTful APIは本質的にステートレスです。

ここに画像の説明を入力してください


5
RESTfulアーキテクチャのサーバーはステートレスですが、システム自体はステートレスではありません。状態はクライアントに格納され、可能な状態遷移はリソースの表現内にエンコードされているため、クライアントはサーバーに要求を出すことによって新しい状態への遷移を開始できます。状態図は、クライアントコンポーネントとサーバーコンポーネント間の要求と応答を正確に文書化していなくても、システム全体の状態を伝えるのに非常に効果的だと思います。
アダムJaskiewicz

1
@Adam:あなたはシステム全体について正しい。しかし、質問では、システム全体ではなく、RESTインターフェースの文書化について明確に尋ねられます。
vartec 2011

おかげで、vartec、MSCはこのインスタンスのRESTインターフェースを効果的に文書化します。このモデルのクライアントの状態に関するドキュメントの改善点を知りたいと思っています。
James Kassemi 2011

1
ハイパーテキスト制約を実装するRESTfulシステムは、クライアントをステートマシンとして機能させます。ステートマシンタイプ図を使用すると、RESTfulなクライアント/サーバーの相互作用を文書化するためのはるかに効果的なツールであることがわかりました。
Darrel Miller

この図でif-sとwhile-s を説明することはできますか?
hellboy

1

ステートマシンは、RESTfulシステムの相互作用を文書化する正しい方法だと思います。ただし、ダイアグラムでハイパーメディア要素を表現するための正しい方法については、引き続き取り組んでいます。ここに私が行ったいくつかの実験図があります。

迷路

ここに画像の説明を入力してください


0

現時点でこれに取り組んでいるので、この件に関する私の2つのペニー:

  • リソースとその関係に焦点を当てる
    • アクションではなく、したがってHTTPメソッド
    • リンクをたどると、GETまたはPOSTを実行したかどうかに関係なく、次の可能な状態は主に現在のリソースによって決定され、リクエストのHTTPメソッドによって決定されません。

それを念頭に置いて:

  • いくつかの明らかなリンク(つまり、自己、ルートへ)を削除
  • "this [car] has a [owner]"と表示されている場合は、関係のラベルを削除します。この場合、ソースリソースはcarで、ターゲットリソースはownerです。何も追加されません
  • インタラクティブなグラフは、複雑な状態図()に非常に役立ちます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.