From 4653a9bebf45b2b91daffe4739394ed0ee5a812c Mon Sep 17 00:00:00 2001 From: Javier Cicchelli Date: Sun, 16 Apr 2023 19:05:56 +0200 Subject: [PATCH] Defined the Endpoint public protocol. --- .../Communications/Protocols/Endpoint.swift | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Sources/Communications/Protocols/Endpoint.swift diff --git a/Sources/Communications/Protocols/Endpoint.swift b/Sources/Communications/Protocols/Endpoint.swift new file mode 100644 index 0000000..5232052 --- /dev/null +++ b/Sources/Communications/Protocols/Endpoint.swift @@ -0,0 +1,37 @@ +// +// Endpoint.swift +// Communications +// +// Created by Javier Cicchelli on 10/04/2023. +// Copyright © 2023 Röck+Cöde. All rights reserved. +// + +import Foundation + +/// This protocol defines an endpoint to be used in a remote call. +public protocol Endpoint { + + // MARK: Properties + + /// The scheme subcomponent for the endpoint. + var scheme: String { get } + + /// The host subcomponent for the endpoint. + var host: String { get } + + /// The port subcomponent for the component. + var port: Int? { get } + + /// The path subcomponent for the endpoint. + var path: String { get } + + /// The HTTP request method for the endpoint. + var method: HTTPRequestMethod { get } + + /// The HTTP header fields as a dictionary for the endpoint. + var headers: [String: String] { get } + + /// The message body as data for a request. + var body: Data? { get } + +}