我正在尝试在特定命名空间下的集合中创建索引,但我不确定如何执行此操作。
我的资源将此作为HTTP示例:
POST /example/v1/index/{namespace}/{set}/{indexName}
并输入示例:
{
"fields": [
{ "indexField": "firstName", "indexReverseOrder": true },
{ "indexField": "lastName" }
],
"options": {
"isUnique": true
}
}
这消耗
application/json;charset=UTF-8
但是当我把它写成
时curl -X POST exampleurl.com/example/v1/index/example_namespace/example_set/example
set -d " {
"fields": [
{ "indexField": "firstName", "indexReverseOrder": true },
{ "indexField": "lastName" }
],
"options": {
"isUnique": true
} }" -H "Content-type : application/json;charset=UTF-8"
我收到以下HTTP状态代码
HTTP/1.1 415 Unsupported Media Type
任何人都可以向我解释发生了什么以及如何解决这个问题?另外,如果您没有足够的API信息来理解它,请告诉我,谢谢!
修改
作为某种引用,当我在命名空间中创建一个集合时,对于这个API我做了:
curl -X POST http://exampleurl.com/example/v1/store/example_namespace -d "example_set" -H "Content-type: application/json;charset=UTF-8"
这是成功的。我认为索引与此类似,但显然不是。
答案 0 :(得分:0)
错误是由于bash shell在json
之前错误解释了双引号curl -X POST exampleurl.com/example/v1/index/example_namespace/example_set/example
set -d " {
"fields": [
{ "indexField": "firstName", "indexReverseOrder": true },
{ "indexField": "lastName" }
],
"options": {
"isUnique": true
} }" -H "Content-type : application/json;charset=UTF-8"
应该是:
curl -X POST exampleurl.com/example/v1/index/example_namespace/example_set/example
set -d ' {
"fields": [
{ "indexField": "firstName", "indexReverseOrder": true },
{ "indexField": "lastName" }
],
"options": {
"isUnique": true
} }' -H "Content-type : application/json;charset=UTF-8"
区别在于封装json的单引号。 bash shell在尝试执行命令时会出错。
答案 1 :(得分:-1)
您的媒体类型中有拼写错误:
application/json;charset=UTF=8
应该是:
application/json;charset=UTF-8