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 } + +}