在创建REST API时,API中的命名约定是否有任何指导或事实标准(例如:URL端点路径组件,查询字符串参数)?骆驼帽是常态还是下划线?其他?
例如:
api.service.com/helloWorld/userId/x
Run Code Online (Sandbox Code Playgroud)
要么
api.service.com/hello_world/user_id/x
Run Code Online (Sandbox Code Playgroud)
注意:这不是RESTful API设计的问题,而是用于最终路径组件和/或查询字符串参数的命名约定准则.
任何指导方针将不胜感激.
应该是/ about_us还是/ about-us?
从可用性的角度来看,我个人认为/ about-us对最终用户来说要好得多,但Google和大多数其他网站(和javascript框架)都使用下划线命名模式.这只是风格问题吗?破折号是否存在兼容性问题?
我正在考虑将应用程序注册到URL协议,我想知道,方案中允许哪些字符?
一些例子:
h323:[<user>@]<host>[:<port>][;<parameters>].)
z39.50r://<host>[:<port>]/<database>?<docid>[;esn=<elementset>][;rs=<recordsyntax>]:)
paparazzi:http:[//<host>[:[<port>][<transport>]]/那么,我可以使用哪些角色?
我们可以......
@:TwitterUser#:HashTag$:CapitalStock?:ID-10T......等等,或者方案中的字符受标准限制?
standards-compliance url-scheme custom-protocol illegal-characters
我想知道你是否通常大写查询字符串中的任何字母,使用破折号或下划线表示变量名,或者有任何其他查询字符串命名约定.我找不到任何参考.
编辑:由于似乎没有惯例,是否有任何最佳做法或通常的方法来做到这一点?
我正在尝试使用三个 get 方法创建一个非常基本的控制器以下是它们的三个 uri
我的控制器代码如下
[Route("api/[controller]")]
[ApiController]
public class MoviesController : ControllerBase
{
private readonly IMoviesService moviesService;
public MoviesController(IMoviesService moviesService)
{
this.moviesService = moviesService;
}
[HttpGet]
public async Task<IActionResult> Get()
{
var result = await moviesService.GetMoviesAsync();
return Ok(result);
}
[HttpGet]
public async Task<IActionResult> GetByName([FromQuery(Name = "name")] string name)
{
var result = await moviesService.GetMoviesByNameAsync(name);
return Ok(result);
}
[HttpGet("{Id}", Name = "GetById")]
public async Task<IActionResult> GetById(Guid Id) …Run Code Online (Sandbox Code Playgroud) api ×2
url ×2
.net ×1
.net-core ×1
asp.net-core ×1
formatting ×1
query-string ×1
rest ×1
seo ×1
url-scheme ×1