問題タブ [asp.net-web-api-helppages]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
6009 参照

c# - WebAPI ヘルプ ページ - 戻り値またはパラメータ モデル/クラス プロパティのドキュメント

Web API 2 (5.0) で Web API ヘルプ ページを使用しています - どちらも最新の Nuget パッケージです。パラメーターであるか、HttpResponseMessage の本文で返されるクラスのプロパティのコメントをヘルプ ドキュメントに表示したいと思います。

たとえば、次のようなコントローラー メソッドがあります。

私が持っている XML コメントを上記の投稿アクションのヘルプ ページに表示したいMyClassType1と考えています。MyClassType2

どこを見ても、これはまだサポートされていないようです。しかし、誰かが ApiExplorer を拡張したり、XmlDocumentationProvider に追加したりして、これを機能させることができたのでしょうか?

生成される XML ファイルにコメントとプロパティが含まれていることがわかっているので、それを手動で解析することができます (すべてのパラメーターと戻り値の型はMyAssemblyName.Models名前空間にあるため、その名前空間で始まるメンバー名. ただし、組み込みの Web API ヘルプ ページにはいくつかのキャッシュ機能があることを知っているので、これを既存の機能に組み込むことを好みます (単に追加するだけです)。

Parameters.cshtml テンプレートを次のように更新することで、パラメーターの種類を表示することができました (1 レイヤーのみ)。

上記のGetFriendlyTypeName()メソッドは、次のように実装されています:リフレクションを使用してジェネリック型の正しいテキスト定義を取得するにはどうすればよいですか?

ただし、これはこれらのクラスからのコメントを取得せず、ネストされた型には役立ちません (たとえば、モデルに複合型のプロパティがある場合、その複合型のプロパティのプロパティは表示されません)。とにかく、型は XML コメントなしでは十分に役に立ちません。

また、これはパラメーターにのみ適用され、HttpResponseMessage の本文に含まれる戻り型には適用されません。ここに示すように実装することで、応答サンプルを機能させることができましResponseTypeAttributeた: Auto generated help pages with return type HttpResponseMessageが、XML コメントを含むプロパティが得られません。リフレクションを使用して、パラメーターの型を再度取得する方法と同様に型を取得できますが、XML コメントを型と一緒にして、入れ子になった複合型を含めたいと思います。

また、サービス呼び出しとは別に、モデル/クラスのドキュメント (型と XML コメントを含むプロパティ) を文書化し、サービス呼び出しに、返される型の名前のみを表示させることも受け入れられると思います (そうすれば、少なくともユーザーは見つけることができます)。そのタイプのドキュメント)。

パラメータまたは戻り値の型のいずれか、できれば両方に対して私がやろうとしていることと同様のことを実装できた人はいますか? または、私を正しい方向に向けるアイデアはありますか?

0 投票する
3 に答える
2422 参照

c# - WebApi.HelpPage を webApi プロジェクトに追加した後の StructureMap 例外

ここの指示に従って、structureMap を使用する既存のプロジェクトに webApi.HelpPage 領域とビューを追加しましたが、/Help URL にアクセスする場合:

だから私は構造マップの設定に何かが欠けています:

誰もが構造マップの初心者を正しい方向に向けることができますか?

0 投票する
2 に答える
3681 参照

asp.net-web-api - Web API ヘルプ ページ - ルート プレフィックスでコントローラーを並べ替える

エリアは Web API で簡単にサポートされないため (また、プロジェクト全体のルーティング ルールよりも柔軟性が必要なため)、コントローラーの[RoutePrefix]属性を使用して、Web API コントローラーを名前空間にグループ化しています。

(これらは別々のファイルにあり、その中にアクションが含まれています。簡単にするために、実際の名前とともにそれを削除しました。)

正常に動作する Web API ヘルプ ページを使用してヘルプ ドキュメントを生成しています。ただし、ドキュメントを「名前空間」でグループ化して順序付けしたいと思います(ルートプレフィックスでグループ化し、それぞれをアルファベット順に並べ替えます)。

注文することから始めて、注文が機能するようになったら、グループ化を理解することにしました。順序付けを機能させるために、Index.cshtml[ HelpPageWeb API ヘルプ ページの Nuget パッケージによって作成された領域] を次のように変更してみました。

これに:

ただし、null 参照例外が発生します。上記の LINQ 式でg.Key.GetCustomAttributes<RoutePrefixAttribute>().FirstOrDefault()は、すべてのコントローラーで null です。ルーティング自体が正しく機能しているため (プレフィックスを含む)、これは私には意味がありません。助言がありますか?

0 投票する
1 に答える
2374 参照

asp.net-web-api - 「同じキーを持つアイテムが既に追加されています」というメッセージを表示する Web API ヘルプ ページ

Web API ヘルプ ページをバージョン 2.1 にアップグレードしました。ヘルプ ページを開こうとすると、次のエラーが表示されました。

問題を次の 2 つのコントローラー アクションに突き止めました。

[FromUri] を削除すると、ヘルプ ページがエラーなしで表示されます。[FromUri] を使用すると、どういうわけか、2 つのエンドポイントが同じであると見なされます。

これに対する回避策はありますか?

0 投票する
1 に答える
2733 参照

asp.net-web-api - webapi 2.1 のヘルプ ページを拡張して追加データを含める

マイクロソフトの高度なヘルプ ページのカスタマイズで、Yao からのかなり古い投稿を見つけました。

手順を実装しようとしましたが、カスタム コメントをヘルプ ドキュメント内に表示することができません。

私の中で

XmlDocumentationProvider.cs

私は変更しました

を更新しました

HelpPageModel.cs

含める

最後に更新したのは GenerateApiModel です

アプリケーションを実行するたびに、responseDocProvider は null です。私が間違ったことをしたように見える何かが突き出ていますか?

問題に関するヘルプをいただければ幸いです

0 投票する
1 に答える
242 参照

c# - WebApi2 ヘルプ ページは、ApiController の拡張後にドキュメントの生成を停止します

いくつかの一般的なプロパティ/メソッドを含めるために ApiController を拡張しました。この拡張されたコントローラーは、別のクラス ライブラリ/アセンブリに保持されます。

私の Api プロジェクトでは、すべてのコントローラーがこの拡張コントローラーを継承しています。

ものすごく単純...

ただし、基本クラスを拡張すると、ヘルプ ページ ジェネレーターがこれらのコントローラーから実際にドキュメントを生成できなくなります。コントローラーを ApiController から直接継承するように切り替えると、それらはドキュメントに表示されます。

ジェネレーターが探すアセンブリ名を許可/変更する方法はありますか? 基本クラスを「ApiController」と直接比較しているため、私のすべてをスキップしているというこっそりの疑いがあります。

0 投票する
2 に答える
888 参照

c# - 選択した HTTP 動詞のみが WebAPI に適用されることを確認する単体テスト

WebAPI を使用します。

作成したテストの 1 つは、特定のコントローラーに対して、許可されている場合にのみ GET 動詞を使用できるようにすることでした。

MVC HelpPages を使用するテストが作成されました

このテストは、コントローラーが適切な場合に GET HTTP VERB メソッドのみを使用することを保証する最良の方法ではなかったかもしれませんが、機能しました。

MVC5 にアップグレードしたので、このテストは失敗しました。HttpSelfHostServer が利用できなくなったため

Microsoft の msdn ライブラリを見ると、HttpSelfHostServer の使用は推奨されていませんが、代わりに Owin の使用が推奨されています。

新しい Owin クラスから始めました

しかし、テストに関しては、これは私が得ることができた限りです

Intellisenseによって提案されているサーバー変数にパブリックメソッドがないため、構成からサービスにアクセスしてGetApiExplorerメソッドを呼び出す方法がわかりません..

Owin の使用方法を示すいくつかのサイトを見てきましたが、この問題の解決には役立ちませんでした: http://www.asp.net/web-api/overview/hosting-aspnet-web-api/use- owin-to-self-host-web-api

この既存の質問もあり ます。Owin を使用すると、ASP.NET Web API 2 ヘルプ ページが機能し ませんが、問題の解決には役立ちませんでした。

特定の HTTP 動詞のみがコントローラー/メソッドに対して許可されていることを確認するための単体テストを作成できるようにするために、または API ヘルプページを使用するように Owin を構成する方法について、何をする必要がありますか?

0 投票する
2 に答える
804 参照

c# - C# Webapi HelpPage リクエスト モデルのカスタマイズ

HelpPage を使用して WebAPI コントローラーのドキュメントを作成しました。Web API に次のモデルがあります。

HelpPage は、次のようにヘルプ ページに InfoModel をレンダリングします。

Model Validationの[Required] 属性を使用し、[Required] 属性を持つプロパティを強調表示したい。HelpPage MVC プラグインを太字の「id」と「title 」にカスタマイズして、これらの属性がREQUIREDであることをユーザーが認識できるようにするにはどうすればよいですか。

{

" ID ": 1,

" title ": "サンプル文字列 2",

"status": "サンプル文字列 3",

"created_at": "サンプル文字列 4"

}

私は Jquery/CSS を理解していますが、そのためには、HelpPage MVC は [Required] 属性のマークを付けて HTML コンテンツをレンダリングし、JS/CSS がクライアント側で異なるスタイルを設定できるようにする必要があります。InfoModel の HTML の生成を担当するAreas.HelpPage.ObjectGeneratorクラスにいくつかの変更が加えられることを期待しています。