Я создал свой api, который внутренне вызывает сторонний api (для которого я буду ссылаться на их api). когда их api возвращает результат успеха (код состояния 200) и данные, я сохраняю их в базе данных, и myapi также возвращает код состояния 200. Но когда их api возвращает код состояния, отличный от 200 (например, statusCode 401, statusCode 403), как обработать это в myapi? плюс, в этом случае myapi должен возвращать код состояния 200 или должен возвращать тот же код состояния, который возвращает их API, если да. Как это сделать. возвращается в angular? как это сделать.
Я новичок в asp. net core web api, так что может кто-нибудь мне помочь.
вот мой api -
public async Task<IActionResult> AddStudent(student stud)
{
Student Student = await _empRepo.AddOrUpdateStudent(stud);
return new OkObjectResult(student)
}
В репо -
public async Task<object> AddOrUpdateStudent(student stud)
{
var response= await testapi.getexternalstudentdata(student.Id);
if(response is Student)
{
//save data in database
// return the same object which saved in DB
}
else{
// what should i do here to return whatever error i am getting to client in asp .net core 3.1
}
}
вызывающий сторонний api-
public async Task<object> getexternalstudentdata(int StudId)
{
var relativePath = "url"
var response = await SendAsync(HttpMethod.Get, relativePath);
if (!response.IsSuccessStatusCode) return response;
var responseString = await response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<Student>(responseString);
}
вот sendAsyn c Метод -
private async Task<HttpResponseMessage> SendAsync(HttpMethod method, string relativePath)
{
var request = new HttpRequestMessage(method, _httpClient.BaseAddress + relativePath);
return await _httpClient.SendAsync(request);
}