У меня есть пример проекта ASP.NET MVC, который вызывает базу данных (MySQL), из панели инструментов делает запрос на этот API, как, например, с таким URI:
https://dashboard.empresa.com.br:8080/api/values/GetUser/ebdb9237044a8437783e691e9a08dele
Я получаю пользователя обратно,Но когда я проверяю контроллер, он выглядит так:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
namespace Emp_wifi.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
// GET api/values
[HttpGet]
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 void Post([FromBody] string 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)
{
}
}
}
Методы для базы данных находятся в другой папке, этот метод не делает никаких других ссылок.
Метод из URI вверхняя часть:
public List<UserModel> GetClientRegister(string hash)
{
try
{
string query = "SELECT * from user WHERE hash = '" + hash + "'";
UserModel dataUser = new UserModel();
var result = new List<UserModel>();
//Open connection
if (this.OpenConnection() == true)
{
//Create Command
MySqlCommand cmd = new MySqlCommand(query, connection);
//Create a data reader and Execute the command
MySqlDataReader dataReader = cmd.ExecuteReader();
while (dataReader.Read())
{
result.Add(new UserModel()
{
IdUser = Convert.ToInt32(dataReader.GetString(dataReader.GetOrdinal("iduser"))),
UserName = dataReader.GetString(dataReader.GetOrdinal("username")),
Login = dataReader.GetString(dataReader.GetOrdinal("login")),
Password = dataReader.GetString(dataReader.GetOrdinal("password")),
Hash = dataReader.GetString(dataReader.GetOrdinal("hash")),
linkPortal = dataReader.GetString(dataReader.GetOrdinal("linkportal")),
IdCustomer = Convert.ToInt32(dataReader.GetString(dataReader.GetOrdinal("idcustomer")))
});
}
//close Data Reader
dataReader.Close();
//close Connection
this.CloseConnection();
//return list to be displayed
return result;
}
else
{
return result;
}
}
catch (Exception ex)
{
LogForm(ex.ToString());
throw;
}
}
Я попытался сделать с фильтром, который состоит в том, что у него нет файла Global.asax, но я не нашел ничего основанного на этом.