나는 대부분의 시간을 C # WinForm 및 ASP.Net MVC 비 WebAPI에서 작업하고 있지만 이제는 WebAPI 작업을 수행하고 싶습니다.
저는 실제로 Web API를 처음 접했습니다. 저는 이와 같은 비디오를 몇 주 동안 연습했고 그것을 이해하기 위해 몇 권의 책을 읽었습니다. 나는 또한 HttpWebquest / HttpClient의 .Net 네트워크 프로그래밍에 대한 확실한 배경을 가지고 있지만 몇 주 전에 webapi 책에서 읽을 때까지 WebAPI가 그것을 사용한다는 것을 결코 알지 못했습니다.
다음과 같은 것을 달성하려면 도움이 필요합니다.
예
웹 사이트 A와 B는 모두 ASP.Net MVC로 개발되었으며 저는 웹 사이트 A의 개발자입니다.
웹 사이트 A (www.mysite.com)
웹 사이트 B ( https://www.cars.com/research/suv/ )
웹 사이트 A는 WebAPI를 통해 웹 사이트 B의 특정 페이지에서 데이터를 추출해야합니다.
웹 사이트 B에서 데이터를 추출 할 페이지가 ( https://www.cars.com/research/suv/ ) 라고 가정하고 해당 페이지에서 모든 것을 추출해야합니다 (이미지 + 제목 + 설명 + 텍스트 + 각 항목에 대한 세부 정보). [차량]) ...
웹 사이트 B의 개발자가 API 엔드 포인트 + ApiSecretKey 및 api 직접 링크 목록을 제공했으며 모든 요청은 GET을 통해 호출되어야한다고 말했습니다.
웹 사이트 B에서 추출한 데이터는 (www.mysite.com/pageVehicule)의 웹 사이트 A에 배치해야합니다.
어떻게해야합니까?
웹 사이트 B가 WebAPI를 노출한다고 가정하면 두 가지 옵션이 있습니다.
HttpClient
이것 에 대한 경험이 있다고 주장하기 때문에 매우 간단합니다 (예시 보류 중).
취해야 할 단계는 다음과 같습니다. 뷰를로드 할 때 :
참고 : 이것이 최선의 예는 아닙니다.이 접근 방식을 사용할 때 더 많은 조사를 수행하십시오.
static HttpClient client = new HttpClient();
static async Task<Product> GetProductAsync(string path)
{
Product product = null;
HttpResponseMessage response = await client.GetAsync(path);
if (response.IsSuccessStatusCode)
{
var jsonString = await response.Content.ReadAsStringAsync();
model = JsonConvert.DeserializeObject<YOUROBJECTTYPE>(jsonString);
}
return product;
}
여기서 이점 중 하나는 인증이 더 간단하다는 것입니다. 단점은 페이지로드가 느려진다는 것입니다.
자바 스크립트를 통해 데이터를 가져올 수 있습니다. jquery
또는 다른 프레임 워크 와 함께 . 일반적으로 페이지를 먼저로드 한 다음 데이터를 가져옵니다.
취해야 할 단계는 다음과 같습니다.
jquery
, react
, angular
, vue.js
, knockout
또는 유사한 프레임 워크.jQuery 예 :
$.ajax({
type: 'GET',
url: 'api/Employees',
dataType: 'json',
success: function (data) {
//use the data here
}});
페이지가 빠르게로드됩니다. 페이지가로드 된 후 api에 대한 호출이 이루어집니다. 따라서 페이지는 백그라운드에서 데이터를로드하는 동안 반응합니다.
여기서 단점은 인증이 필요한 경우 클라이언트 측 (예 : javascript)에 자격 증명을 저장할 수 없으므로 더 나은 인증 흐름이 필요하다는 것입니다. 아마도 쿠키 또는 jwt 토큰 일 것입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다