我的要求是实现用于搜索手机的高级搜索 Rest API。搜索 API 的 URI 是http://myservice/api/v1/phones/search?q= ${query_expression}
其中q是复杂的查询表达式。有以下问题
1) 由于高级搜索涉及冗长的查询表达式,因此 URI 将不适合 GET 调用。是否可以通过 POST 请求实现搜索 API 并仍然保持 REST 性?
2)我遇到了以下高级搜索的实现:
PHONENAME STARTSWITH 'AR' AND ( PHONETYPE = '4G' OR PHONECOLOR = 'RED')
第二种方法 - 以 json 的形式构建整个查询表达式。例如。
{"criteria":[
{"index":1,"field":"PHONENAME","value":"AR","comparator":"STARTSWITH"},
{"index":2,"field":"PHONETYPE","value":"4G","comparator":"EQUALS"},
{"index":3,"field":"PHONECOLOR","value":"RED","comparator":"EQUALS"}
],"criteria":"( 1 AND (2 OR 3) )"}
第 3 种方法 - 将查询表达式实现为 json 的替代方法。例如。
{"and":[
{"field":"PHONENAME","value":"AR","comparator":"STARTSWITH"},
"or":[
{"field":"PHONETYPE","value":"4G","comparator":"EQUALS"},
{"field":"PHONECOLOR","value":"RED","comparator":"EQUALS"}]
]}
在这三种方法中,哪种方法更符合 RESTful?欢迎对任何其他方法提出建议:)
我已经阅读了有关如何使用TensorFlow对象检测API训练新类的教程。但是我想做的是在预训练模型的已经训练好的课程中添加一个新的课程。
例如:MS-COCO预训练模型有90个班级。我想再添加一个类并检测91个类的对象。