Giter VIP home page Giter VIP logo

nclient's People

Contributors

d4nielrv avatar danielsusos avatar keatoonmask avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

nclient's Issues

Removing Parameters associated type from the Endpoint protocol

Endpoint protocol includes an associated type named Parameters but I don't understand what this type contributes in this case, I mean, we can define an endpoint as a struct which implements Endpoint protocol like:

private struct MockEndpointWithParameters: Endpoint {

    let name: String
    let age: Int

     ...
 }

so you will instantiate the endpoint like

let endpoint = MockEndpointWithParameters(name: "Daniel", age: 20)

we could remove the function where Parameters are being used and just include a couple of properties to the protocol:

public protocol Endpoint {
    associatedtype RequestBody = Empty
    associatedtype ResponseBody = Empty
    associatedtype Auth: _EndpointAuth = EndpointAuth.None

    /// The HTTP method of the endpoint.
    var method: HTTP.Method { get }

    var path: String { get }

    var queryItems: [URLQueryItem] { get }

    /// Serializes the request body into the given URLRequest.
    func serializeBody(_ body: RequestBody, into request: inout URLRequest) throws

    /// Deserializes the response body from the received data.
    func deserializeBody(_ data: Data) throws -> ResponseBody
}

and then we could even remove the corresponding parameters param from the request method.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.