问题标签 [siesta-swift]

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 投票
3 回答
367 浏览

ios - 午睡 JSON 响应

我设置了一个提供 JSON 响应的 API,如下所示:

我已阅读内容,但仍然不明白如何key1正确访问。我试图通过 解码转换器中的数据[String : Any],这会引发不明确的类型错误:“表达式类型不明确”。

那么如何在下面的代码中读取 Siesta 的响应呢?

0 投票
1 回答
175 浏览

swift - Siesta configureTransformer for Resource 带参数

我正在尝试为带有参数的端点配置变压器。

我成功地为不包含任何参数的端点配置了转换器。但似乎当我尝试对带有参数的 Resource 执行相同操作时,它不起作用。

这就是我配置变压器的方式:

这就是我发送请求的方式:

我得到了响应,但它永远不会通过变压器管道。

编辑

在工作正常的转换上测试了该.withParam()方法,似乎 URL 必须相同才能使 Siesta 转换器工作,这真是太糟糕了。

0 投票
0 回答
47 浏览

ios - 使用 Siesta 框架存储凭据 - iOS

想尝试一下 Siesta,我已经开始在一个副项目中使用它。

我想知道你们中是否有人对存储登录凭据(用户名+psw 或只是令牌)以及如何将它们集成到 Siesta 提出的 API 结构中获得任何建议。

您只是使用 KeychainItemWrapper 吗?还有什么值得分享的吗?

谢谢 ;)

0 投票
1 回答
68 浏览

siesta-swift - 如何在午睡中覆盖某些资源的默认(“**”)装饰器?

我正在尝试在服务器上将 Siesta swift 包与我的 API 一起使用。我们已经使用访问和刷新令牌设置了 JWT 身份验证。我们可以通过刷新过程成功地进行身份验证并获取新的访问令牌。但是我们提出的解决方案让我看起来有点老套。

我们正在使用这样的请求装饰器

请注意409返回码签入globalApiFailHandler。它在那里是因为总是需要全局装饰器authRefreshResource。如果我们忽略该检查,API 将在某些服务器错误下陷入无限循环刷新令牌。

问题是如何为我们想要的特定资源禁用全局装饰器?拥有这个将优雅地解决我们的问题。

0 投票
1 回答
109 浏览

swift - Swift Siesta - 如何将异步代码包含到请求链中?

我尝试使用 Siesta 装饰器来启用一个流程,当登录用户获得 401 时,我的 authToken 会自动刷新。对于身份验证,我使用 Firebase。

在 Siesta 文档中,有一个关于如何链接 Siesta 请求的直接示例,但我找不到如何获取异步 Firebase getIDTokenForcingRefresh:completion: working here 的方法。问题是 Siesta 总是希望返回一个 Request 或一个RequestChainAction,而 Firebase auth token refresh api 无法做到这一点。

我知道请求链接主要是为仅 Siesta 的用例完成的。但是有没有办法使用像 FirebaseAuth 这样不完全适合图片的异步第三方 API?

这是代码:

编辑:

根据Adrian的建议答案,我尝试了以下解决方案。它仍然无法按预期工作:

  • 我使用request() .post 发送请求
  • 使用该解决方案,我在回调中收到失败的“请求已取消”
  • 调用createUser的回调后,原始请求与更新的 jwt 令牌一起发送
  • 这个具有正确 jwt 令牌的新请求会丢失,因为没有为响应调用createUser的回调 -> 因此在这种情况下永远不会达到onSuccess 。

如何确保仅在使用更新的 jwt 令牌发送原始请求后才调用 createUser 的回调?这是我不工作的解决方案 - 很高兴有任何建议:

Api 类:

请求委托:

0 投票
1 回答
114 浏览

ios - 如何将 Siesta Swift 包声明为另一个 Swift 包的依赖项?

我正在尝试使用 Swift 包 Siesta 作为我正在构建的包的依赖项,并在我的包代码中引用它。我已经确定了如何将包导入到我的Package.swift文件中的项目中,这很简单:

这会导致包被复制到我的包中就好了。我遇到的问题实际上是将它链接到我的包,所以我可以import它并在代码中引用它。我知道我需要将它实际链接到我的目标

我已经阅读了一些其他的包文件,因为 Siesta 的包名是这样的

而且它申报的产品是这样的

我应该能够在我的包文件的目标中执行此操作以使用它

但是当我尝试构建我的包时,我收到一个错误:

/Users/blahblah/Desktop/MyPackage/Package.swift:目标“MyTarget”的依赖项中的未知包“Siesta”

不仅如此,我的包上的单次运行方案的所有目标都丢失了,如果不丢弃所有本地版本控制更改,我就无法再次构建。这里发生了什么?

0 投票
1 回答
20 浏览

ios - 基于参数的 URL 解码模型的 Siesta Service configureTransformer

我有一个支持发布请求的端点。所有请求的 URL 都相同,但每个请求的参数不同。当客户端可以制定将在响应中返回的查询和字段时,它基本上是一种自由格式的查询服务。我希望能够在服务上定义方法,这些方法将代表特定查询和每个查询的模型。但是我不确定如何为每个“基于查询的”端点配置转换器。

有没有办法做到这一点,还是最好简单地使用 json 字典?谢谢...