외부에 노출 된 MVC 프로젝트가 있습니다. 내부 웹 API 프로젝트가 있습니다.웹 API 컨트롤러 용 MVC 컨트롤러 프록시 만들기
내 제어 할 수없는 이유로 웹 API 프로젝트를 직접 노출 할 수 없으며 웹 API 컨트롤러를 MVC 프로젝트에 추가 할 수 없습니다.
웹 API 컨트롤러의 프록시 역할을하는 MVC 컨트롤러를 만들어야합니다. 웹 API가 직접 호출 된 것처럼 보이는 MVC Controller 응답이 필요합니다.
이 작업을 수행하는 가장 좋은 방법은 무엇입니까?
내가 지금까지 가지고있는 것보다 나은 접근법이 있습니까?
어떻게 오류를 해결할 수 있습니까? MVC의 컨트롤러에서
public HttpResponseMessage GetData()
{
...
return HttpRequest(new HttpRequestMessage(HttpMethod.Get, uri));
}
private HttpResponseMessage HttpRequest(HttpRequestMessage message)
{
HttpResponseMessage response;
...
using (var client = new HttpClient())
{
client.Timeout = TimeSpan.FromSeconds(120);
response = client.SendAsync(message).Result;
}
return response;
}
, 내가 요청에 InvalidOperationException이 무엇입니까 MyMVCController
[HttpGet]
public HttpResponseMessage GetData(HttpRequestMessage request)
{
...
var response = proxy.GetData();
return request.CreateResponse();
}
MyProxyClass : 여기
는 내가 지금까지 무엇을 가지고 .CreateResponse() 행. 오류 메시지 :
요청에 연결된 구성 개체가 없거나 제공된 구성이 null입니다.
도움을 주시면 감사하겠습니다. Google과 StackOverflow를 검색했지만 MVC와 웹 API간에이 프록시를 만드는 좋은 솔루션을 찾을 수 없었습니다.
감사합니다.
항상 200 개의 상태 코드를 반환하지 않겠습니까? Web API에서 응답의 상태 코드를 보존해야합니다. 또한 웹 API에서 객체 직렬화, 프록시 비 직렬화 및 MVC 객체 다시 직렬화를 원하지 않습니다. – jkruer01
언제든지 웹 API 호출 – aleha
에서 얻은 결과를 기반으로 원하는 상태 코드를 반환 할 수 있습니다. serialize, de-serialize, serialize again 문제는 무엇입니까? – jkruer01