Я пытаюсь изучить ядро asp.net, поэтому в соответствии с официальным сайтом я установил его sdk и создал простой веб-API с помощью этой команды:
dotnet new webapi -o TodoApi
Мой идеал vscode.
Это мой контроллер класса:
namespace TodoApi.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";
}
[HttpGet("api/cities")]
public JsonResult GetCities(){
return new JsonResult(new List<object>(){
new {id=1, name = "new york city"},
new {id = 2 , name = "gorgan"}
});
}
}
}
Я добавил GetCities
метод в этом примере. В почтальоне, когда я использую
https://localhost:5001/api/values
Я получил результат:
[
"value1",
"value2"
]
но когда я вызываю свой метод, который я уже добавил к контроллеру, в постамне
https://localhost:5001/api/cities
Я получил 404 Not Found
, и мне нужно использовать этот URL https://localhost:5001/api/values/api/cities
, чтобы получить правильный ответ?
В чем проблема? и как я могу это исправить?
Это настройка:
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": false,
"iisExpress": {
"applicationUrl": "http://localhost:34842",
"sslPort": 44370
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": false,
"launchUrl": "api/values",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"TodoApi": {
"commandName": "Project",
"launchBrowser": false,
"launchUrl": "api/values",
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
и информация о сети:
groot@groot-Product:~$ dotnet --info
.NET Core SDK (reflecting any global.json):
Version: 2.1.700
Commit: c2ef055a0f
Runtime Environment:
OS Name: ubuntu
OS Version: 18.04
OS Platform: Linux
RID: ubuntu.18.04-x64
Base Path: /usr/share/dotnet/sdk/2.1.700/
Host (useful for support):
Version: 2.1.11
Commit: d6a5616240
.NET Core SDKs installed:
2.1.700 [/usr/share/dotnet/sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.11 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.11 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.11 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download
groot@groot-Product:~$