Всем привет! Я разработала веб-приложение на asp.net core 2 mvc, пока только на локалке, связала его с базой данных на sql при помощи entity framework, теперь, мне нужно разработать мобильное приложение, наверное буду делать его на Xamarin, и у меня вопрос, каким образом сделать так, что бы мое мобильное приложение получало данные из базы данных веб-приложения. Насколько я понимаю, нужно разработать API, можно ли его сделать в проекте веб-приложения, не переделывая методы получения данных в контроллерах, или все придется переделывать? И как лучше вообще решить мою проблему? Всем спасибо)))
Приложение asp.net core mvc отдаёт данные прямо в браузер в формате html. Для мобильных приложений нужен вывод ваших данных в формате json.
Можете создать дополнительно к каждому контроллеру по такому же контроллеру, который отдаёт/принимает данные в формате json.
Посмотрите пустой проект Webapi который идёт вместе со студией, какой там приведён контроллер ValuesController. Ничего сверхественного - даже в чём-то проще, выдаёте данные в типах c# их на лету превратит в json:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace WebApi.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
// GET api/values
[HttpGet]
[Authorize]
public ActionResult<IEnumerable<string>> Get()
{
return new string[] { "value1", "value2" };
}
// GET api/values/5
[HttpGet("{id}")]
public ActionResult<string> Get(int id)
{
return "value";
}
// POST api/values
[HttpPost]
public ActionResult<string> Post([FromBody] string value)
{
return $"value={value}.";
}
// PUT api/values/5
[HttpPut("{id}")]
public void Put(int id, [FromBody] string value)
{
}
// DELETE api/values/5
[HttpDelete("{id}")]
public void Delete(int id)
{
}
[Authorize]
[Route("getlogin")]
public IActionResult GetLogin()
{
return Ok($"Ваш логин: {User.Identity.Name}");
}
[Authorize(Roles = "admin")]
[Route("getrole")]
public IActionResult GetRole()
{
return Ok("Ваша роль: администратор");
}
}
}
Во-вторых, решите вопрос как ваше приложение будет авторизовываться на веб-апи, обычно для этого подходят jwt токен и хорошая входная точка - вот тут и вот тут, с этого многие начинали.
Я часто делаю приложения, которые одновременно являются и веб-сайтами и отдают данные по api (просто складываю api контроллеры в отдельную area).
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Имеется метод OnChange который реагирует на изменение файла, проблема в том что при изменении программа сохраняет текущее изменение и всё, то есть...
Я хочу получить список всех видео на определённом канале youtube, как это можно сделать на c#?
недавно начал изучать С#До этого с языками программирования дела не имел
Понятно, что есть тип ObjectИ этот тип включает в себя такие методы