使用JSON作为HTTP GET输入参数是有效的RESTful服务吗?
我有以下后端API: 端点 HTTP获取 查询参数 ?输入 范例 最后一个HTTP GET调用是 {上述JSON} 由于后端需求的不断变化,上述JSON结构通过添加新的键:值对而不断增加。此JSON结构也是对数据库的查询 阻碍 由于使用weblinks作为值,因此有必要使用encodeURIComponent函数来成功调用REST。这意味着,引号、正向斜杠等需要进行编码才能获得回复。当需要使用Postman或其他REST客户机在独立的基础上进行测试时,这将变得非常乏味使用JSON作为HTTP GET输入参数是有效的RESTful服务吗?,rest,http,get,Rest,Http,Get,我有以下后端API: 端点 HTTP获取 查询参数 ?输入 范例 最后一个HTTP GET调用是 {上述JSON} 由于后端需求的不断变化,上述JSON结构通过添加新的键:值对而不断增加。此JSON结构也是对数据库的查询 阻碍 由于使用weblinks作为值,因此有必要使用encodeURIComponent函数来成功调用REST。这意味着,引号、正向斜杠等需要进行编码才能获得回复。当需要使用Postman或其他REST客户机在独立的基础上进行测试时,这将变得非常乏味 我没有看到像上面提到的那样
我没有看到像上面提到的那样将JSON结构传递给API,因此我希望确认在进行此类RESTful调用时使用大量参数的最佳做法和/或正确方法。我通常认为通过POST获取某些内容是一种不好的做法 然而,听起来GET中的body并不是被禁止的东西,而是框架中没有广泛实现的东西 在您的情况下,这将取决于您有多少属性以及全局长度或json 如果您继续使用GET方法,那么使用JSON的分解键值表示应该是一种方法 例如: {myKey:myValue,childObjKey:{childObjProp:childValue} 可能成为 ?myKey=myValue&childObjKey.childObjProp=childValue 但是查询参数的长度有一些限制,可以在客户端和/或服务器中实现。 如果您的参数数量庞大,并且值的长度是不可预测的文本,例如没有长度限制,那么使用POST应该是一种方法。当用户从UI中选择一个参数时,这里有一个示例。它已被编码,因此有点难看。一旦参数增加,我想HTTP Post将是一个更好的选择
https://localhost:8443/getSomeParameterInfo
{
'url': 'http://semanticstuff.org/blah#Parameter,
'parameters_1': 'value1',
'someArray': [
'http://semanticstuff.org/blah#something1,
'http://semanticstuff.org/blah#something2
],
'someOtherArray': [
'http://....'
]
}