将路径作为GET请求的参数传递的正确方法

时间:2016-01-14 06:48:32

标签: c# api parameter-passing

我有一个如下所示的API端点:

[HttpGet]
public ActionResult MyApiMethod(string path)
{
    // do stuff with path

    return Ok();
}

显然我不能通过路径,否则我的呼叫将是404.我认为base64编码是正确的,但显然base64编码会导致符号,例如' +',& #39; /'和' =' ...这也会在命中端点时造成随机错误。我应该如何将路径作为参数传递给API GET请求?

2 个答案:

答案 0 :(得分:0)

path ='api / yourcontroller name / your action name'

这是将路径传递给api控制器的方法

答案 1 :(得分:0)

使用string path作为GET API的参数是一个坏主意。首先,使用此API的开发人员应该详细了解您的实现,例如"我是否需要对路径进行url编码?"或"路径是以/是否开始?"或者"如果我把主机名放在路径中怎么办?"。其次,您需要关心安全问题。

我想使用列出所有支持操作的enum

public enum ApiAction
{
    This,
    That
}

public ActionResult MyApiMethod(ApiAction apiAction)
{
     //get the path from enum via a method or something
     var path = GetPath(apiAction);

     //do something to path
}