问题标签 [apollo-datasource-rest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
631 浏览

typescript - 从 didReceiveResponse 回调返回 null 是否有效?

我有一个didReceiveResponse扩展 RESTDataSource 的类的回调,null如果响应状态为 404,我将在其中返回。由于它的输入,RESTDataSource.didReceiveResponse这似乎是无效的。

这是我在使用时遇到的 Typescript 错误--strict-null-checks

null有没有办法在不禁用编译器或严格的空检查的情况下在返回的同时解决这种打字问题?

0 投票
1 回答
839 浏览

caching - 如何使 Apollo Server RESTDataSource 中的缓存无效

使用文档中的简单“电影 API”示例。我ttlgetMovie函数中添加了一个,以便将结果缓存 10 分钟。如何使updateMovie函数中的缓存无效?


我知道KeyValueCache传递给 ApolloServer 的接口提供了一个delete功能。但是,此对象似乎并未在数据源中公开。它被包裹在里面HTTPCache,它只暴露一个fetch函数。KeyValueCache也被包裹在 a中PrefixingKeyValueCache,因此假设RESTDataSource.

0 投票
1 回答
81 浏览

typescript - “不能在没有新的情况下调用类”和“不能重新声明阻塞范围的变量”同时发生

我在尝试使用 RESTDataSource 时开始出现错误:

"Class constructor RESTDataSource cannot be invoked without 'new'"

所以我尝试了这个解决方案并添加了"target": "es2016". 我不再收到错误消息。

但现在我收到打字稿编译错误 error TS2451: Cannot redeclare block-scoped variable 'Query'.

显然这是因为打字稿无法将我的文件识别为模块。

所以我尝试了这个解决方案并将其添加export {}到我的文件中,以便它们被识别为模块。但是因为我的目标是es2016我得到Unexpected token 'export'

有什么办法可以同时解决这两个问题?

错误发生在我的代码中,所以我将包括整个回购:https ://github.com/grochadc/filex-graphql-server

tsconfig.json

0 投票
1 回答
254 浏览

express - RESTDataSource - 如何知道响应来自获取请求还是缓存

我需要从 GraphQL API 中的 REST API 获取一些数据。为此,我RESTDataSourceapollo-datasource-rest.

据我了解, RESTDataSource 会自动缓存请求,但我想验证它是否确实被缓存。有没有办法知道我的请求是从缓存中获取数据还是访问了 REST API?

我注意到第一个请求需要一些时间,但以下请求更快,而且didReceiveResponse每次我进行查询时都不会调用该方法。是因为数据是从缓存中加载的吗?

我正在使用 apollo-server-express。

谢谢你的帮助!

0 投票
1 回答
278 浏览

multipartform-data - Apollo REST 数据源和 Imgur API - 使用表单数据不断收到 400 Bad Request

我正在尝试apollo-datasource-rest通过 Imgur 的 API 处理通过 URL 上传的图像(此处的文档:https ://apidocs.imgur.com/ )

我最初收到一个400读取错误We don't support that file type!,并确定这是由于apollo-datasource-rest自动设置Content-Typeapplication/json. 使用 npm 包修复该问题后form-data,我的代码如下所示:

我现在不再收到We don't support that file type!错误消息,但我仍然收到400带有状态文本的响应Bad Request。上console.log()一个代码片段中的打印如下:

我在这里想念什么?API 似乎正在接受我的表单数据,所以我认为其他标题之一可能存在问题,但在 Postman 中,看起来只有几个必需的标题,其中大部分是计算出来的(例如Content-Length),所以我假设apollo-datasource-rest必须处理那个。

0 投票
0 回答
38 浏览

node.js - 如何使用 Apollo 数据源在 NodeJS 中下载 pdf 文件

我尝试调用一个rest api,它返回一个带有 Content-Type: application/pdf 和 Content-Encoding: gzip 的文件响应

如何下载此文件并可以从本地驱动器打开?

我使用以下代码:

有人可以帮我下载这个文件吗?

0 投票
1 回答
73 浏览

graphql - 如何在 apollo-datasource-rest 中使用多个 REST API 端点(baseURL)?

我正在构建一个单一的 GraphQL 端点,该端点具有从不同端点调用的底层 REST 服务。我能够成功执行查询,但是对于突变,我引用了一个单独的端点。如何将其合并到我的代码中?

0 投票
0 回答
2 浏览

node.js - 如何通过 Apollo Server 中的 apollo-rest-datasource 调用 GraphQL Api

我有一个graphql端点“ https://api.sorare.com/graphql/playground/ ”我想调用这个API端点,调用查询并通过apollo数据源从中制作一个Graphql API,但我不知道如何接近它

数据源