Я создал Angular проект с Visual Studio, я использую ASP. NET CORE 3.1 в качестве моего бэкэнда и Angular 9.0.1 в качестве FRONT-END. Я пытался использовать данные из REST API (Prometheus API), вот модель:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Prometheus_test.v1
{
public class Query
{
public string Status { get; set; }
public object Data { get; set; }
}
}
, и мой контроллер выглядит так:
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Threading.Tasks;
namespace Prometheus_test.v1.Controllers
{
[ApiController]
[Route("[controller]")]
public class QueryController : ControllerBase
{
private readonly ILogger<QueryController> _logger;
public QueryController(ILogger<QueryController> logger)
{
_logger = logger;
}
[HttpGet]
public ActionResult<QueryController> Index()
{
IEnumerable<Query> Queries = null;
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://localhost:9090/api/v1/");
//HTTP GET
var responseTask = client.GetAsync("query?query=up&time=2020-02-20T10:30:00.781Z");
responseTask.Wait();
var result = responseTask.Result;
if (result.IsSuccessStatusCode)
{
var readTask = result.Content.ReadAsAsync<IList<Query>>();
readTask.Wait();
Queries = readTask.Result;
}
else //web api sent error response
{
//log response status here..
Queries = Enumerable.Empty<Query>();
ModelState.AddModelError(string.Empty, "Server error. Please contact administrator.");
}
}
return View(Queries);
}
}
}
Теперь я не знаю, что для я очень запутался, получу ли я данные, используя эту модель? и как я могу использовать данные из этого REST API? Спасибо за любую помощь, спасибо.