Я новичок в ASP.NET MVC , и я пытался поближе познакомиться с платформой .NET и ее особенностями. В настоящее время я пытаюсь создать приложение C # MVC , которое использует Github API для извлечения некоторых данных, таких как перечисление всех моих репозиториев, отображение некоторой их информации, поиск репозиториев по имени ( не обязательно мое) и т. д.
Но я борюсь за простые вещи. Во-первых, я не знаю, как правильно установить соединение, чтобы получить эту информацию. Я пытался следовать руководству по octokit на их странице и пытался получить данные с помощью JSON и преобразовать их в объект C #, но все мои попытки не увенчались успехом в обоих случаях.
Я видел этот пример в octokit, он работает для консольных приложений:
var github = new GitHubClient(new ProductHeaderValue("MyAmazingApp"));
var user = await github.User.Get("half-ogre");
Console.WriteLine(user.Followers + " folks love the half ogre!");
Но я не совсем понимаю, куда мне их поместить, учитывая структуру MVC в ASP.NET или то, как она должна отличаться. Я не нашел документацию по octokit очень полезной по этим аспектам.
И некоторые из моих вещей, которые я до сих пор делал, пытаясь десериализовать JSON в C #:
Модель
namespace GithubAPI.Models {
public class Repositories {
public string name { get; set; }
public string language { get; set; }
public string owner { get; set; } //or login ?
public string updated_at { get; set; }
}
public class RepCollections {
private List<Repositories> repositories;
public List<Repositories> Repositories { get => this.repositories; set => this.repositories = value; }
}
}
Я сделал это, когда попытался сохранить данные JSON в класс
Контроллеры
public ActionResult Index() {
var url = "https://api.github.com/users/{myuser}/repos";
using (var webClient = new WebClient()) {
var rawJSON = string.Empty;
try {
rawJSON = webClient.DownloadString(url);
}
catch (Exception) { }
RepCollections rep = JsonConvert.DeserializeObject<RepCollections>(rawJSON);
return View();
}
}
Это не сработало, возможно потому, что это не в том месте, ИДК.
View
@using GithubAPI.Models
@model RepCollections
@{
ViewBag.Title = "Repositories";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<div class="row">
<div class="col-md-4">
<h2>Repositories</h2>
<br/>
<p>User: @Html.DisplayNameFor(model => model.owner)</p>
<div>
<table class="table">
<tbody>
<tr><th></th></tr>
@foreach (Repositories r in Model) {
<tr>
<td>
@r.name
</td>
</tr>
}
</tbody>
</table>
</div>
</div>
</div>
Излишне говорить, что foreach
не сработало.
Кто-нибудь может дать мне немного света, пожалуйста? Спасибо.
П.С .: Я не использую OAuth. Просто хочу базовую аутентификацию.