問題タブ [refit]

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 投票する
1 に答える
1405 参照

c# - RefitとWeb APIの間でサービスメソッドのURLを共有するには?

C# インターフェイスを作成し、Contract.dll にコンパイルしました。Contract.dll は、ASP.NET MVC Web サイト (このシナリオではクライアント) および ASP.NET Web API サービスによって参照されます。

Web サイトで Refit を使用してサービスを呼び出します。Refit の Get 属性と Web API の HttpGet 属性で Contract.dll の定数を使用して、サービス メソッドの URL を示してみました。これにより、URL を 1 か所で指定して、クライアントとサービスから参照できるようになります。

クライアント

サービス

RestService.For(httpClient) を呼び出すと、Refit は例外をスローします。

IWidgetService は Refit インターフェイスのようには見えません。Refit HTTP メソッド属性を持つ少なくとも 1 つのメソッドがあり、Refit がプロジェクトにインストールされていることを確認してください。

どうやら、Refit は Get 属性の定数を理解していないようです。両方の場所で文字列リテラルを使用すると、コードは正しく実行されます。ただし、URL を 2 か所で繰り返すことにより、 DRYの原則に違反しています。

Refit クライアントと Web API サービス メソッドが同じ URL を使用するように、Contract.dll のインターフェイスに注釈を付けるにはどうすればよいですか?

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

c# - 新しいアクセス トークンをリクエストし、API リクエストを再送信します

Xamarin フォーム プロジェクトで Refit ライブラリを使用して API 要求を送信しています。うまく機能しますが、アクセス トークンの有効期限が切れると問題が発生します。

アクセス トークンの有効期限が切れると、予想どおり、サーバーから 401 エラーが返されます。次に、Identity Server を呼び出して新しいアクセス トークンを発行しましたが、API 要求を再送信するのに苦労しています。まだ不正なエラーが発生します。助けていただければ幸いです。

トークンを処理するために AuthenticatedHttpClientHandler クラスを作成しました。