Swiftpack.co - davidebalistreri/DBNetworking as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by davidebalistreri.
davidebalistreri/DBNetworking 1.0.2
Modulo creato per semplificare le chiamate alle web API classiche con Swift e iOS.
⭐️ 0
🕓 1 week ago
iOS
.package(url: "https://github.com/davidebalistreri/DBNetworking.git", from: "1.0.2")

DBNetworking

Modulo creato per semplificare le chiamate alle web API classiche con Swift e iOS.

let string = await DBNetworking
    .request(url: "https://www.google.it")
    .response().body

Features

  • ☑ Swift Concurrency support
  • ☑ Automatic response decoding
  • ☑ Multipart POST
  • ☑ Repeatable requests

Requirements

iOS 13.0 or later

Installation

Swift Package Manager

dependencies: [
    .package(url: "https://github.com/davidebalistreri/dbnetworking.git", .upToNextMajor(from: "1.0.1"))
]

Manual installation

Drop the DBNetworking.swift file into your project, and you are ready to go.

Usage

Per effettuare una chiamata web, si crea una richiesta con la funzione DBNetworking.request(). Successivamente con la funzione response() si invia la richiesta e si riceve la risposta.

È possibile serializzare automaticamente la risposta ricevuta in un generico oggetto NSDictionary o una String, utile ad esempio quando non si possiede una struct o una class modellata come i dati che ci invierà il server:

let weatherRequest = DBNetworking.request(
    url: "https://edu.davidebalistreri.it/app/v2/weather",
    parameters: [
        "lat": 41.89,
        "lng": 12.49,
        "appid": "OpenWeatherMap-AppId",
    ])

let weatherResponse = await weatherRequest
    .response(type: NSDictionary.self)

Se invece si possiede un modello conforme al protocollo Decodable, è possibile utilizzarlo per serializzare la risposta ricevuta. È possibile ottenere la risposta anche con un singolo passaggio, creando la request e chiedendo direttamente la response.

let login = await DBNetworking
    .request(
        url: "https://edu.davidebalistreri.it/app/v2/login",
        type: .post,
        parameters: [
            "email": "my@email.it",
            "password": "password",
        ])
    .response(type: ResponseModel<UserModel>.self)

Other usages

Per ottenere una semplice stringa:

let string = await DBNetworking
    .request(url: "https://www.google.it")
    .response().body

Per controllare solamente se una richiesta è andata a buon fine:

let success = await DBNetworking
    .request(url: "https://www.google.it")
    .response().success

Per modificare il token di autenticazione dopo aver creato una richiesta:

let userRequest = DBNetworking.request(
    url: "https://edu.davidebalistreri.it/app/v2/user")

let userResponse = await userRequest
    .setAuthToken("AmydY57cen3KLrlvUGZrCpziw81w")
    .response(type: ResponseModel<UserModel>.self)

GitHub

link
Stars: 0
Last commit: 1 week ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics