NL 0.2.5

NL 0.2.5

SreelekhN 维护。



NL 0.2.5

NL 是一个基于 URL 会话构建的网络层,可以帮助您实现 REST/GraphQL API 调用。

用法

import NL

protocol SearchClientProtocol { func search(searchText: String, curser: String) async -> FinalResponse }

struct SearchListClient: HTTPClient, SearchClientProtocol { func search(searchText: String, curser: String) async -> FinalResponse { let compose = SearchCompose(searchText: searchText, curser: curser) return await self.serverRequest(compose: compose, decoder: SearchDecodable.self) } }

使您的类或结构体遵循 HTTPClient 协议,通过这种方式,您可以访问其方法。

composite 参数将接受所有输入参数。创建一个如下所示遵循 HttpsRequestComposeProtocol 的类/结构体:

import NL

struct SearchCompose: HttpsRequestComposeProtocol {

var method: NetworkMethod {
    return .post
}

var params: Encodable?

init(searchText: String, curser: String) {
    self.createQuiry(searchText: searchText, curser: curser)
}

private mutating func createQuiry(searchText: String, curser: String) {
    var extra: String = """
      query: "\(searchText)", first: 20
    """
    if curser.isNotEmpty {
        extra +=
    """
    , after: "\(curser)"
    """
    }
    
    let query =
    """

query { search((extra)) { pageInfo { hasNextPage } edges { cursor node { } } } } """ self.params = QuerySendable(query: query) } }

这里这是一个 GraphQL 查询,您也可以为常规 REST API 调用传递参数。

这是一个正在进行的工程,如果需要,请报告任何错误或功能。