いくつかの CRUD メソッドを持つ Asp.net Web API プロジェクトがあります。
これらのメソッドに加えて、Authorization
ヘッダーを読み取り、ユーザーがリソースにアクセスできないようにする承認サービスを追加したいと考えています (承認されていない場合)。
// Method on internal IP Project
public class InternalController : ApiController
{
public void Create(CreateRequest request)
{
// implement the method
}
}
// Method on public IP Project
public class ExternalController : ApiController
{
public async Task Create(CreateRequest request)
{
// validate Authorization header and throw exception if not valid
using (HttpClient client = new HttpClient())
{
string parameters = string.Format("param1={0}¶m2={1}", request.Param1, request.Param2);
client.BaseAddress = new Uri("http://192.168.1.1/");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = await client.GetAsync("api/internal/create?" + parameters);
response.EnsureSuccessStatusCode();
}
}
}
外部 API から内部 API へのリクエストをより簡単に「リダイレクト」する方法はありますか?
現在、ExternalAPI で受け取ったすべてのパラメーターを手動で再作成し、InternalAPI で送信する必要があります。それらが同じであってもです。
ExternalAPI メソッドにあるオブジェクトをHttpClient
自動的に送信することはできますか?HttpRequestMessage (Request)