当前位置: 首页 > 知识库问答 >
问题:

API中的自定义搜索

有宏邈
2023-03-14

我有一个API,可以对六个字段进行自定义搜索,大致如下,虽然也可能包括敏感数据,因为我在其他地方对相同类型的搜索使用了相同的方法

  • 用户名
  • 电子邮件
  • 名字
  • 姓氏
  • 部门

我通常使用RESTful方法,因此对于用户列表或单个用户,检索用户的过程如下所示

GET /user
GET /user/1

然而,对于搜索,我对如何允许这样做有点困惑。我的初衷是在请求正文中使用JSON,例如

{
    "username": "someuser",
    "department": "sales"
}

我不能使用请求正文,因为这似乎是合乎逻辑的(和我使用的POST等行动),虽然,因为它是不支持的Chrome据我所知(或至少,不是由PostMan插件,我们用于测试)

因此,执行此搜索的最佳方式是什么?

我看到的选项

使用标头

这似乎是头的“错误”使用,但也是最接近原始请求正文的

在网址中使用参数

邪恶的笑(Evil Grin的缩写)

GET /user?username=someuser&department=sales

但是控制器会变得很混乱(使用C# Web API),因为我不能将项目留空。所以请求应该更像这样,除非我有一大堆被覆盖的方法来处理不同的排列。这似乎...麻烦的

GET /user?username=someuser&email=&firstname=&lastname=&department=

也许更重要的是,它让人有点看不见了:这是在医疗环境中进行的,尽管有时不可避免地会显示东西,但我宁愿将其保持在最低限度(数据本身在传输过程中自然是SSL加密的)

使用其他HTTP动词

我可以使用POST或其他动词,这会起作用,但有违直觉,而且违背了RESTfulhtml" target="_blank">方法(据我所知)和我自己在项目中的标准,因此可能会令人困惑。

还有其他人遇到过这种情况吗?什么是“官方”或最好的处理方式?

共有1个答案

公羊新
2023-03-14

没有真正的“官方”方式。在这种情况下,我只是稍微改变一下REST的规则,只使用一个帖子,传入一个身体是POST方法的用途。

关于Chrome不支持:这在Chrome以及PostMan扩展中完全支持(您需要选择一个POST方法并为正文选择原始选项,然后选择JSON)

另一方面,querystring也是一个不错的选择。通过使用控制器中的默认参数,可以有空项:

public ActionResult Search(string userName = "", int departmentId = 0)
{
    ...
}
 类似资料:
  • 问题内容: 我通过了几个链接,以找到在ios应用程序中实现google customsearchapi的正确步骤,并在此过程中花费了大约6到7个小时。 链接: https://developers.google.com/custom-search/json-api/v1/简介 http://developers.google.com/apis-explorer/#p/customsearch/v1

  • 问题内容: 任何人都可以分享一些Java代码来开始使用Google搜索API。可以帮助我。(我已获得API密钥和自定义搜索引擎ID)。 谢谢。 问题答案: 我已经更改了@Zakaria提供的代码中的。这可能不是解决问题的正确方法,但是它为您提供了Google搜索的结果链接。您只需要解析输出。看这里, 希望它也对您有用。

  • 更新时间:2019-05-21 15:27:30 节点简介 自定义API节点可以让开发者在服务中调用自己实现的http/https接口,并将接口的返回值作为节点的输出。 使用场景 如果您需要在您开发的服务中调用自己实现的http/https接口,那么您就需要使用到自定义API节点作为服务的中间逻辑节点。 配置项 1、节点名称 2、请求方式:默认为POST,支持POST、GET 3、API 地址:

  • 我正在努力让wordpress从页面模板中搜索自定义帖子元。我在互联网上到处找,似乎找不到任何有用的东西。没有插件似乎也能工作。 在我的帖子中,我有一个自定义的meta:“rate”和值:“10”-Wordpress在搜索这些内容时不会给出任何结果。 如果有人能给我写一个搜索页面,我将不胜感激。php页面模板或为我指出正确的方向(我不擅长php)。 以下是我当前的PHP代码:

  • 本文向大家介绍destoon设置自定义搜索的方法,包括了destoon设置自定义搜索的方法的使用技巧和注意事项,需要的朋友参考一下 第一步: 在include/global.fun.php中加入两个函数 函数一: 函数二: 第一个函数的意思是过滤空格回车 第二个函数是根据 name(自定义字段) tb(所属模型) $fid(当前所选ID)生成下拉列表。 第二步: 在module/sell/sear

  • 我一直在建立一个自定义搜索。该搜索具有许多下拉列表,用户可以将其留空,也可以从许多选项中进行选择。此数据保存在“wine note”自定义帖子类型的帖子中的自定义字段中。 到目前为止,它在某种程度上起了作用。我的搜索结果页面如下所示: 问题是,即使下拉选择器为空,搜索也会排除没有该特定自定义字段的任何帖子。 仅显示所有自定义字段(数据或非数据)的帖子。 因此,我稍微修改了我的代码,添加了一些if语