如何在 API 端点上添加后缀 .NET Core
有没有办法在所有端点路由上自动添加后缀,例如 .json。
v1/users.json
v1/users/{id}.json
所以到目前为止我尝试过的是我创建了一个 BaseController ,它看起来像这样
[ApiController]
[Route("v1/[controller].json")]
public class BaseController : ControllerBase
{
}
,但每次我将它用于我的控制器时,它看起来像这样
v1/users.json
v1/users.json/{id}
Is there a way to automatically add a suffix on all endpoint routes e.g .json.
v1/users.json
v1/users/{id}.json
so what I have tried so far is I created a BaseController which look like this
[ApiController]
[Route("v1/[controller].json")]
public class BaseController : ControllerBase
{
}
but every time I use it to my controller it looks like this
v1/users.json
v1/users.json/{id}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以将额外的路由添加到实际端点而不是控制器
You can add extra routing to the actual endpoints rather than the controllers
您可以使用 URL 重写中间件来接受带有 .json 的 URL,然后将其删除。因此,类似:
将变为:
您可以通过将以下代码添加到启动的
Configure
方法中来完成此操作:请参阅文档 了解更多信息。
注意:如果您使用
Url.Action(...)
等在代码中生成 URL,则它不会包含.json
。重写仅影响传入请求。You could use the URL Rewriting Middleware to accept URLs with .json and then simply remove it. So something like:
would become:
You can do this by adding the following code to your Startup's
Configure
method:See the docs for more information.
Caveat: If you use
Url.Action(...)
, etc. to generate a URL within code, then it won't include.json
. The rewrite only affects incoming requests.