我\xe2\x80\x99是一家公司的开发人员,我们多年来一直使用亚马逊出色的产品广告 API (PA-API) 来获取图书信息。我们\xe2\x80\x99当前使用Java SDK和API v5。
\n问题
\n我们为客户提供与我们附属公司的直接链接,以获取不同亚马逊商店上的相关硬拷贝或电子书。为此,我们创建一个以 ISBN(例如 9780399562396)为关键字且没有特定搜索索引的SearchItems 文档请求。过去,我们收到的回复包含两个商品,因此有两个 ASIN,一个用于硬拷贝,一个用于电子书(可通过 itemInfo\xe2\x80\x99s 产品组进行区分)。然而,一段时间以来,我们不得不认识到响应通常只包含一项,即硬拷贝产品。
我已经使用很棒的Scratchpad尝试了不同的方法。
\n问题
\n有趣的是,当我明确包含搜索索引(更多信息请参见此处) \xe2\x80\x9cBooks\xe2\x80\x9d 或 \xe2\x80\x9cKindleStore\xe2\x80\x9d 时,API 正在响应预期的项目(对于带有书籍的“书籍”和对于带有 Kindle 的“KindleStore”)。我们通过查看ItemInfo.Classifications(更多信息在这里)来做到这一点但是,如果我在索引 \xe2\x80\x9cAll\xe2\x80\x9d 或 don\xe2\x80\x99t 指定它时搜索,它只返回一项(通常是硬拷贝)。在我看来这很奇怪\xe2\x80\xa6 API/搜索索引是否应该像这样表现?
此外,我无法弄清楚如何在同一请求中搜索索引,在我看来,这根本不受支持,但我希望至少会返回两个项目\xe2\x80\xa6
\n因此,我想问您是否有人可以解释一下,我们可以通过一个请求检索同一 ISBN 的两个 ASIN(kindle + 硬拷贝书)。当然,可以为每个产品组创建两个单独的请求,但是由于 API 费率与发货商品收入相关,因此我们希望避免不必要的 API 请求。
\n使用和不使用搜索索引的显式用法的一些示例
\n在下面的示例中,我通过执行 SearchItem 请求来查找 ISBN 9780262043649 的书籍的硬拷贝或 kindle。
\na) 具有给定搜索索引的硬拷贝
\n有效载荷
\n{\n "Keywords": "9780262043649",\n …Run Code Online (Sandbox Code Playgroud) 我尝试使用不同层(web、business、dataAccess、common)的子项目创建一个带有 gradle 的 spring boot 项目。
我按照官方 gradle 指南创建多项目构建的说明进行操作。
两个子项目最初都是用Spring.io创建的。
问题
我尝试使用我User的其他子项目dataAccess 中常见的子项目类。导入在 Intellij 中工作正常。但是,当我运行任务失败,因为找不到:gradlew :dataAccess:compileJavaUser
任务 :dataAccess:compileJava FAILED ...\dataAccess\src\main\java\ch\wprogLK\MyProject\backend\dataAccess\MyProjectDataApplication.java:23: 错误:找不到符号 User u = new User(); ^ 符号:class 用户位置:class MyProjectDataApplication)
在常见的项目获取编译之前数据访问项目。我猜这是一个 gradle 配置问题,dataAccess项目在编译时对公共项目一无所知(可能是类路径问题?)。我很高兴得到任何帮助。谢谢。
项目设置
代码
我的项目/build.gradle
plugins {
id 'org.springframework.boot' version '2.1.8.RELEASE'
id 'io.spring.dependency-management' version '1.0.8.RELEASE'
id …Run Code Online (Sandbox Code Playgroud)