swift - 如何将完成块用于 swagger 为 etcd api 生成的 api 存根
问题描述
我尝试在使用 swagger-gen 的 swift 命令行项目中使用 etcd v3 API 和这个 api:https ://etcd.io/docs/v3.5/dev-guide/apispec/swagger/rpc.swagger.json 但是运行一个问题:返回的字符串是空的。
到目前为止我尝试了什么:EtcdService.swift:
import Foundation
import SwaggerClient
struct EtcdService {
static var prefix : String = "foo"
static func getValue(key: String) -> String {
var str = "";
var req = EtcdserverpbRangeRequest()
req.key = Data((prefix+key).utf8)
SwaggerClient.KVAPI.kVRange(body: req) { (response: EtcdserverpbRangeResponse?, _: Error?) in
let data: [MvccpbKeyValue] = (response?.kvs)!
str = String(decoding: (data.first?.value)!, as: UTF8.self)
//it does show me the content of the response if I uncomment this
//print(str)
}
return str;
}
}
main.swift:
import Foundation
import SwaggerClient
SwaggerClientAPI.basePath = "http://localhost:2379"
let str = EtcdService.getValue(key: "3")
print(str)
RunLoop.main.run(until: Date(timeIntervalSinceNow: 5))
有没有更清洁(更简单)的方法来做到这一点?
解决方案
推荐阅读
- scala - 将熵计算从 Scala Spark 转换为 PySpark
- c# - 检索现有的 IServiceScope
- c# - Unity - 升级项目后,在命名空间“UnityEngine”中找不到类型名称“Rigidbody2D”
- php - 带有自定义提供程序的 vtiger 中的短信
- python - TRMM nc4 使用 python3 绘图的问题
- go - 从伪终端获取先前的输入
- java - 将日期转换为时间戳会返回错误的日期
- html - 基于子元素的中心 div
- mysql - AWS Glue 测试与 MySQL RDS 实例的连接失败,日志中没有错误
- neo4j - 查询路径时返回关系