c# - Asp.net web api post 和 get 方法不可见
问题描述
我正在尝试使用 asp.net core web api 制作一个 api。虽然我在方法上面放了[HttpGet]和[HttpPost]标签,但是界面中只出现了带参数的函数。
我创建的方法没有出现在swagger界面中
namespace APIproje.Controllers {
public class UsersController : ControllerBase {
private readonly IKullnicilar _userRepositories;
public UsersController(IKullnicilar userRepositories) {
_userRepositories = userRepositories;
}
[HttpGet]
public async Task<IEnumerable<Users>> GetUsers() {
return await _userRepositories.Get();
}
[HttpGet("{id}")]
public async Task<ActionResult<Users>> GetUsers(int id) {
return await _userRepositories.Get(id);
}
[HttpPost]
public async Task<ActionResult<Users>> PostUsers([FromBody] Users user)
{
var newUser = await _userRepositories.Create(user);
return CreatedAtAction(nameof(GetUsers), new { id = newUser.id }, newUser);
}
}
}
跑步:
我哪里错了?
解决方案
您可以使用
[ApiController]
[Route("you'r route")]
像这样 :
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace test
{
[ApiController]
[Route("api/")]
public class UsersController : ControllerBase
{
[HttpGet]
public async Task<IEnumerable<object>> GetUsers()
{
return new List<object>();
}
[HttpGet("{id}")]
public async Task<ActionResult<object>> GetUsers(int id)
{
return Ok(new object());
}
[HttpPost]
public async Task<ActionResult<object>> PostUsers([FromBody] object user)
{
return Ok(new object());
}
}
}
推荐阅读
- php - 如何修复 odbc 中的“[Microsoft][ODBC SQL Server Driver][SQL Server]'�'附近的语法错误”错误?
- python - 如何在 Python 中使用正则表达式从 HTML 标签中提取 Facebook 页面 URL?
- json - 如何获取json对象中的键值并将其影响到同一个对象中?
- c - 在读取 proc 文件之前,内核模块不会打印到 dmesg
- angular - 使用选择选项时,Angular(单击)在 Chrome 上不起作用
- django - 有没有办法从视图中将值传递给自定义 context_processor 函数?
- kubernetes - 我可以直接使用 F5 BIG-IP Kubernetes 控制器作为入口控制器而无需 nginx 入口吗?
- java - 如何查看在 ProcessBuilder 中执行的原始命令?
- android - 无法在我的主要活动中创建意图活动
- java - 将元素的数量与 ArrayList 中的数字匹配