Как получить данные с помощью API в ASP.NET MVC? - PullRequest
0 голосов
/ 17 марта 2019

Я - новичок в бэкэнд-разработке на C # и ASP.NET MVC, так что я могу догадаться, что мой вопрос немного глуп и извините, но я потратил часы на поиск информации об этом и на чтение документациии почти ничего не вышло.

Итак, мне нужно получить информацию о криптовалютах с помощью API coinmarketcap.com и отобразить их в таблице.Я создал класс контроллера и использовал пример кода из документации API:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Net;

namespace CryptoCurrency.Controllers
{
    public class CryptoCurrencyController : Controller
    {
        private static string API_KEY = "key";

        // GET: CryptoCurrency
        public ActionResult Index()
        {

            // here i need to call the makeAPICall() method,
            // get data about cryptocurrencies and send it to the view

            return View();
        }

        static string makeAPICall()
        {
            var URL = new UriBuilder("https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest");

            var queryString = HttpUtility.ParseQueryString(string.Empty);
            queryString["start"] = "1";
            queryString["limit"] = "80";
            queryString["convert"] = "USD";

            URL.Query = queryString.ToString();

            var client = new WebClient();
            client.Headers.Add("X-CMC_PRO_API_KEY", API_KEY);
            client.Headers.Add("Accept", "application/json");
            return client.DownloadString(URL.ToString());
        }
    }
}

Как получить данные через API и правильно отправить их в представление?Должен ли я сохранить client.DownloadString(URL.ToString()); или использовать json вместо строки?Кроме того, я предполагаю, что мне следует создать модель криптовалюты, которая будет содержать имя, символ, date_added и др.

Мне не нужен полностью готовый код, я буду рад, если вы просто направите меня кнекоторая понятная для начинающих информация о моих вопросах, потому что сейчас я тону во всей этой информации и не могу найти то, что мне нужно.

Спасибо!

1 Ответ

1 голос
/ 17 марта 2019

Вы должны вызвать API из вашего действия, затем десериализовать полученную строку в определенную вами модель представления и, наконец, передать эту модель представления в ваше представление:

// GET: CryptoCurrency
public ActionResult Index()
{
    var str = MakeAPICall();
    var viewModel = JsonConvert.Deserialize<YourViewModel>(str);
    return View(viewModel);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...