何时使用路径参数或查询参数[重复]

2023-12-26

是否存在关于何时应使用 URL 路径参数以及何时应使用查询参数的经验法则?

假设我有一张发票表,其中包含以下字段:company(PK)、InvoiceNo(PK)、Invoiceline、invoiceValue、noOfLines、salesPerson

我目前的想法是你的网址应该是这样的

/Invoice/

这将显示所有发票

/Invoice/{company}

这将显示公司的所有发票。

/Invoice/{company}/{InvoiceNo}

显示该特定发票和

/Invoice/{company}/{InvoiceNo}?invoiceLineNo=23

仅显示第 23 行。

我的想法是,主键字段应该是路径的一部分,而您要过滤的任何其他字段都是查询参数的一部分。

这听起来像是区分两者的合理方式吗?


我个人的经验法则是 PathParam 导致您请求的实体类型。

/Invoices             // all invoices
/Invoices?after=2011  // a filter on all invoices

/Invoices/52          // by 52
/Invoices/52/Items    // all items on invoice 52
/Invoices/52/Items/1  // Item 1 from invoice 52

/Companies/{company}/Invoices?sort=Date
/Companies/{company}/Invoices/{invoiceNo} // assuming that the invoice only unq by company?

去引用Mr Rowe https://stackoverflow.com/users/396747/gary-rowe: 用于分组数据的路径参数,用于过滤的查询参数

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

何时使用路径参数或查询参数[重复] 的相关文章

  • Hibernate统计打印HQL:null

    我是使用休眠的新手 我打开了统计信息 与普通的 HQL 查询一起 我得到了许多这样的统计信息 INFO Statistics HQL null time 1724ms rows blah 有人可以以任何方式帮助我为什么null查询大约需要
  • 在Java中,为什么equals()和hashCode()必须一致?

    如果我重写类上的任一方法 它必须确保如果A equals B true then A hashCode B hashCode也一定是真的 有人可以给我看一个简单的例子 如果违反了这一点 就会导致问题吗 我认为这与您是否使用该类作为 Hash
  • 问题:将大数据传递给第二个 Activity

    我有一个奇怪的问题 我在网上浏览但没有找到答案 我仍然是android编程的初学者 那么让我们开始吧 我想做的就是用一些数据调用第二个活动 它适用于小数据 但如果数据变大 第二个 Activity 将不会显示 第一个 Activity 将完
  • java中简单程序中的“未为类型定义方法”错误

    所以我只是想学习 Java 在观看了一些教程并阅读了一些基本内容之后 我对为什么它无法运行感到困惑 package Test public class TestProg public static void main String args
  • 如何从 ByteBuffer 转换为 Integer 和 String?

    我转换了一个int使用 ByteBuffer 的字节数组putInt 方法 我该如何做相反的事情 那么将这些字节转换为 int 吗 此外 我使用 String 的将字符串转换为字节数组getBytes 方法 我如何将其反过来转换 这byte
  • 从队列 ID 获取 Jenkins 作业构建 ID

    我成功地使用它来启动 Jenkins 作业 curl X POST http jenkins srv 8080 job MY JOB buildwithParameters this 1 that 2 user name pass 我还可以
  • Run As JUnit 未出现在 Eclipse 中 - 使用 JUnit4

    我正在尝试为我的 Web 应用程序编写 JUnit4 测试 它们之前一直工作正常 但是 现在当我尝试通过右键单击类文件 gt Run As gt JUnit Test 来运行测试时 我看不到该选项 我认为这可能是因为一位同事意外提交了一些
  • 使用 Hashmap 理解两个或多个键

    我的哈希图有问题 在我的哈希映射方法中 我希望有两个或多个关键字作为键 而不是只有一个 例如 我希望用户输入一些包含两个或多个关键字的句子 假设 教授姓名 是关键字 例如 String temp3 instructor teacher me
  • Selenium 和 xpath:查找带有类/id 的 div 并验证其中的文本

    我正在努力拥有xpath find a div并验证div有一个特定的string里面的文字 这是HTML div class Caption Model saved div and div class gwt HTML sfnStanda
  • NoSuchMethodError:org.springframework.data.repository.config.RepositoryConfigurationSource.getAttribute

    我正在尝试在 spring boot 应用程序中使用 spring data redis 来使用 redis 我正在创造JedisConnectionFactory如下 RedisStandaloneConfiguration config
  • 菜单项标题未显示

    菜单项的标题未显示在片段内 我在菜单文件中有两个项目 第一个是带有图标和标签的showAsAction always在工具栏中显示图标 第二个只有标题 我不知道这里出了什么问题 菜单项的所有操作均有效 例如下面 菜单 销售 xml menu
  • JRuby调用了错误的方法

    我在调用 Java 方法时遇到了一个奇怪的问题JRuby http en wikipedia org wiki JRuby 在我的 Java 类中 这些方法定义了两次 看来 JRuby 调用了错误的方法 所以我尝试使用java method
  • Selenium - WebDriver.findElement() 和 WebElement.findElement() 之间的区别

    我正在使用WebElement findElement By cssSelector click 在页面上查找某个元素 但它返回了 Unable to locate element 但是当我使用WebDriver findElement B
  • 方法中缺少 return 语句错误

    我正在尝试编写一个返回计算机 MAC 地址字符串的静态方法 该函数本身可以在此处找到 http www mkyong com java how to get mac address in java http www mkyong com j
  • Java中有没有办法随机获取HashMap的值?

    Java中有没有办法随机获取HashMap的值 这有效 Random generator new Random Object values myHashMap values toArray Object randomValue values
  • Scala 不可变 Map 速度慢

    当我创建地图时 我有一段代码 val map gtfLineArr 8 split map split collect case Array k v gt k v toMap 然后我使用这张地图来创建我的对象 case class MyOb
  • JPA2+Hibernate 3.6.0 中的 JTA 还是 LOCAL 事务?

    我们正在重新思考我们的技术堆栈 以下是我们的选择 由于应用程序的复杂性等 我们不能没有 Spring 和 Hibernate 我们还从 J2EE 1 4 迁移到 Java EE 5 技术栈 Java EE 5 JPA 2 0 我知道Java
  • Tomcat 中 JNDI 的 Java Mail API 配置文档

    我花了几天时间弄清楚如何通过 JNDI 在 Tomcat 中配置 javax mail Session有认证 现在我明白了 但只是在深入研究代码之后 这次我看到了有史以来最糟糕的代码 javax mail Service connect S
  • 实例化新类时,代理后面的 Java 小程序遇到暂时冻结

    介绍 我们客户办公室的 Java 小程序存在一些问题 该小程序旨在通过定期截屏来记录屏幕 它已签名 并且应该以提升的权限运行 我们遇到的问题是 Java 小程序有时可能根本无法启动 如果 Java 控制台出现 它可能很快就会消失 感觉好像整
  • JavaMail - 发件人地址被拒绝:访问被拒绝

    好吧 我不知道还能做什么 一周前 当我编写并测试它时 这段代码运行得非常好 然后我将其嵌入到我的程序中 并意识到我不断遇到异常 一切看起来都很正常 发件人地址合法 我用来测试的收件人地址是合法的 怎么了 我很沮丧 private Strin

随机推荐

  • 大型 XML 文件和分页,可能吗?

    问题 当在您的计算机上本地打开非常大的 XML 文件时 几乎可以肯定的是 该文件需要一段时间才能打开 这通常意味着您的计算机因认为没有响应而被锁定 如果您为用户提供他们使用的相当复杂的数据库或系统的 XML 备份 这就是一个问题 他们能够打
  • WPF - 如何保存没有任何 Alpha 通道的 PNG?

    我有一个BitmapSource 我将它保存为像这样的png PngBitmapEncoder enc new PngBitmapEncoder enc Frames Add myBitmapSource enc Save fs 如何在没有
  • C 中自动 stdout 缓冲区刷新的规则是什么?

    我只是好奇应该满足哪些条件才能自动刷新标准输出缓冲区 首先 我很困惑这个伪代码不会在每次迭代时打印输出 while 1 printf Any text sleep 1 但如果我添加换行符 它就会 经过几次实验 我发现在我的机器上标准输出缓冲
  • 用 C++ 模拟 CPU 负载

    我目前正在使用 C 在 Windows 中编写一个应用程序 我想模拟 CPU 负载 我有以下代码 void task1 void param unsigned elapsed 0 unsigned t0 while 1 if t0 cloc
  • 批处理文件检查具有相同扩展名的文件

    所以我不太擅长代码 我有一个代码可以检查扩展名文件的大小 txt我需要它来验证具有该扩展名的所有文件 如果大于 限制 则写入一个 例如 size txt里面是超出大小限制的文件的名称 我已经拥有并给我的代码是 它没有写入文件的部分size
  • Spring Flux 和 Async 注解

    我有一个 Spring Flux 应用程序 在某些时候我需要在后台执行一些繁重的任务 调用者 HTTP 请求 不需要等到该任务完成 如果没有反应堆 我可能会使用Async https docs spring io spring framew
  • 使用浮点数求级数总和

    我计算了该系列的前 20 个元素 有两种方式 第一种 向前 第二种 向后 为此我做了 include
  • 构造函数和 Pydantic

    我想创建一个带有构造函数的 Pydantic 类 该构造函数对输入进行一些数学运算并相应地设置对象变量 class PleaseCoorperate BaseModel self0 str next0 str def init self p
  • 从 Java 输入流读取下一个字符(完整的 unicode 代码点)

    我需要逐个字符地解析UTF 8输入 来自文本文件 按字符我指的是完整的UTF 8字符 UTF 8代码点 而不是Java的字符 我应该使用什么方法 There s CharSequence codePoints https docs orac
  • 有没有办法“传播”或“扁平化”GraphQL 响应?

    我有一个如下所示的 GraphQL 查询 allContentfulDocuments edges node documents id 有什么办法可以压平edges and node层 变成基本上像这个查询一样工作的东西 allConten
  • 多进程和子进程有什么区别?

    我的工作应该使用并行技术 并且我是Python的新用户 我想知道你是否可以分享一些关于Python的材料multiprocessing and subprocess模块 这两者有什么区别 The subprocess模块允许您运行和控制其他
  • 是否存在完全“布局中立”的 HTML 容器元素?

    有时我想在其他几个 HTML 元素周围放置一个包装元素带着唯一的目的设置一个方便的 CSS 选择器来引用所有包含的元素
  • 获取 N 维 numpy 数组中第一次出现的值

    我见过这个问题 https stackoverflow com questions 432112 is there a numpy function to return the first index of something in an
  • Tensorflow 因 CUBLAS_STATUS_ALLOC_FAILED 崩溃

    我使用简单的 MINST 神经网络程序在 Windows 10 上运行 tensorflow gpu 当它尝试运行时 它遇到了CUBLAS STATUS ALLOC FAILED错误 谷歌搜索没有发现任何东西 I c tf jenkins
  • pandas dataframe读取csv,其中行末尾有/没有逗号

    我的示例文件如下所示 1 50424e 09 164 84 164 94 163 4 164 07 09 30 00 1 50424e 12 eAAPL 1 38904e 07 0 22 45 2 64333e 07 847097 18 4
  • 从 C main() 程序返回字符串的机制

    我知道C程序一般以return结束 这里我们返回程序的状态 但是 我想返回一个字符串 原因是 我将从 shell 脚本调用 C 可执行文件并打印返回的字符串 有没有同样的机制 没有这样的机制 返回码预计是一个字节 如果你想从你的程序中输出一
  • 如何使文本框只接受货币格式输入?

    这是该程序的屏幕截图 正如你所看到的 我按照我想要的方式设置了输出格式 我使用了这段代码
  • 在 Google Play 上查找交易 ID 以转让 2017 年应用程序

    我试图将我的一个应用转移给 Google Play 上的另一位开发者 但现在找不到我的交易 ID 几个月前 还可以在 Google 钱包上找到交易 ID 但现在不可能了 现在如何在 Google Play 上找到我的交易 ID https
  • 如何在宽度自动列内对 TextBlock 进行 TextWrap?

    考虑如下
  • 何时使用路径参数或查询参数[重复]

    这个问题在这里已经有答案了 是否存在关于何时应使用 URL 路径参数以及何时应使用查询参数的经验法则 假设我有一张发票表 其中包含以下字段 company PK InvoiceNo PK Invoiceline invoiceValue n