问题标签 [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.
ios - 午睡 JSON 响应
我设置了一个提供 JSON 响应的 API,如下所示:
我已阅读此内容,但仍然不明白如何key1
正确访问。我试图通过 解码转换器中的数据[String : Any]
,这会引发不明确的类型错误:“表达式类型不明确”。
那么如何在下面的代码中读取 Siesta 的响应呢?
swift - Siesta configureTransformer for Resource 带参数
我正在尝试为带有参数的端点配置变压器。
我成功地为不包含任何参数的端点配置了转换器。但似乎当我尝试对带有参数的 Resource 执行相同操作时,它不起作用。
这就是我配置变压器的方式:
这就是我发送请求的方式:
我得到了响应,但它永远不会通过变压器管道。
编辑
在工作正常的转换上测试了该.withParam()
方法,似乎 URL 必须相同才能使 Siesta 转换器工作,这真是太糟糕了。
ios - 使用 Siesta 框架存储凭据 - iOS
想尝试一下 Siesta,我已经开始在一个副项目中使用它。
我想知道你们中是否有人对存储登录凭据(用户名+psw 或只是令牌)以及如何将它们集成到 Siesta 提出的 API 结构中获得任何建议。
您只是使用 KeychainItemWrapper 吗?还有什么值得分享的吗?
谢谢 ;)
siesta-swift - 如何在午睡中覆盖某些资源的默认(“**”)装饰器?
我正在尝试在服务器上将 Siesta swift 包与我的 API 一起使用。我们已经使用访问和刷新令牌设置了 JWT 身份验证。我们可以通过刷新过程成功地进行身份验证并获取新的访问令牌。但是我们提出的解决方案让我看起来有点老套。
我们正在使用这样的请求装饰器
请注意409
返回码签入globalApiFailHandler
。它在那里是因为总是需要全局装饰器authRefreshResource
。如果我们忽略该检查,API 将在某些服务器错误下陷入无限循环刷新令牌。
问题是如何为我们想要的特定资源禁用全局装饰器?拥有这个将优雅地解决我们的问题。
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 类:
请求委托:
ios - 如何将 Siesta Swift 包声明为另一个 Swift 包的依赖项?
我正在尝试使用 Swift 包 Siesta 作为我正在构建的包的依赖项,并在我的包代码中引用它。我已经确定了如何将包导入到我的Package.swift
文件中的项目中,这很简单:
这会导致包被复制到我的包中就好了。我遇到的问题实际上是将它链接到我的包,所以我可以import
它并在代码中引用它。我知道我需要将它实际链接到我的目标
我已经阅读了一些其他的包文件,因为 Siesta 的包名是这样的
而且它申报的产品是这样的
我应该能够在我的包文件的目标中执行此操作以使用它
但是当我尝试构建我的包时,我收到一个错误:
/Users/blahblah/Desktop/MyPackage/Package.swift:目标“MyTarget”的依赖项中的未知包“Siesta”
不仅如此,我的包上的单次运行方案的所有目标都丢失了,如果不丢弃所有本地版本控制更改,我就无法再次构建。这里发生了什么?
ios - 基于参数的 URL 解码模型的 Siesta Service configureTransformer
我有一个支持发布请求的端点。所有请求的 URL 都相同,但每个请求的参数不同。当客户端可以制定将在响应中返回的查询和字段时,它基本上是一种自由格式的查询服务。我希望能够在服务上定义方法,这些方法将代表特定查询和每个查询的模型。但是我不确定如何为每个“基于查询的”端点配置转换器。
有没有办法做到这一点,还是最好简单地使用 json 字典?谢谢...