如何将.NET核心API请求路由到特定的控制器方法?

编程入门 行业动态 更新时间:2024-10-12 03:17:23
本文介绍了如何将.NET核心API请求路由到特定的控制器方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我想将我的API操作分组到一小组控制器中,例如我的KeyContoller会获得JWT令牌和API公钥的请求。我到目前为止阅读的文档似乎没有允许这种级别的粒度,并建议单独的控制器。 我尝试过: 目前我可以通过,因为方法签名不同但我对此并不满意。这是控制器代码:

使用System; 使用System.Collections.Generic; 使用System.Linq; 使用System.Threading.Tasks; 使用Microsoft.AspNetCore.Http; 使用Microsoft.AspNetCore.Mvc; 名称空间CMDS.Controllers { [路由(CMDS / [控制器])] [ApiController] 公共类KeyController:ControllerBase { [HttpGet] public IActionResult GetPublicKey() { object returnData; returnData =CMDS Public Key; 返回Ok(returnData); } [HttpGet({AuthString})] public IActionResult GetJWTToken(string AuthString) { object returnData; returnData =JWT Token; 返回Ok(returnData); } } }

以下是针对每种方法的示例调用: GetPublicKey

Invoke-RestMethod http:// localhost:5000 / CMDS / Key

<对于GetJWTToken,

Invoke-RestMethod http:// localhost:5000 / CMDS / Key /dDSD

解决方案

我不确定我是否完全了解你的事情,但你可以指定获取方法签名如:

[HttpGet(GetPublicKey)] public IActionResult GetPublicKey() {对象returnData; returnData =CMDS Public Key; 返回Ok(returnData); } [HttpGet(GetJWTToken / {AuthString})] public IActionResult GetJWTToken(string AuthString) { object returnData; returnData =JWT Token; 返回Ok(returnData); }

哪会允许:

Invoke-RestMethod http:// localhost:5000 / CMDS / Key / GetPublicKey

Invoke-RestMethod http: //本地主机:5000 / CMDS /键/ GetJWTToken / DDSD

I would like to group my API actions into a small set of controllers so for example my KeyContoller would have get requests for the JWT Token and for the API Public key. The documentation I have read so far doesn't appear to allow that level of granularity and suggests seperate controllers. What I have tried: For the moment I can get by because the method signatures are different but I'm not happy with that. This is the controller code:

using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; namespace CMDS.Controllers { [Route("CMDS/[controller]")] [ApiController] public class KeyController : ControllerBase { [HttpGet] public IActionResult GetPublicKey() { object returnData; returnData = "CMDS Public Key"; return Ok(returnData); } [HttpGet("{AuthString}")] public IActionResult GetJWTToken(string AuthString) { object returnData; returnData = "JWT Token"; return Ok(returnData); } } }

Here are sample calls hitting each method: for GetPublicKey

Invoke-RestMethod localhost:5000/CMDS/Key

for GetJWTToken

Invoke-RestMethod localhost:5000/CMDS/Key/"dDSD"

解决方案

I'm not sure if I understood quite what your after, but you can specify the get method signatures such as:

[HttpGet("GetPublicKey")] public IActionResult GetPublicKey() { object returnData; returnData = "CMDS Public Key"; return Ok(returnData); } [HttpGet("GetJWTToken/{AuthString}")] public IActionResult GetJWTToken(string AuthString) { object returnData; returnData = "JWT Token"; return Ok(returnData); }

Which would allow:

Invoke-RestMethod localhost:5000/CMDS/Key/GetPublicKey

Invoke-RestMethod localhost:5000/CMDS/Key/GetJWTToken/"dDSD"

更多推荐

如何将.NET核心API请求路由到特定的控制器方法?

本文发布于:2023-10-10 21:53:07,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1479855.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:路由   如何将   控制器   核心   方法

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!