swift-libs/Sources/Communications/Enumerations/HTTPRequestMethod.swift
Javier Cicchelli cd47043a30 [Feature] Communications (#4)
This PR constains the work done to define the necessary protocols and enumerations to start defining remote API service as well as an implementation of the `URLProtocol` to mock requests and responses when using the `URLSession` to make remote calls.

To provide further details about this work:
- [x] declared the `Communications` library in the `Package` file;
- [x] defined the minimum Apple platform versions in the `Package` file to support the async/await feature;
- [x] defined the `HTTPRequestMethod` and `HTTPResponseCode` public enumerations;
- [x] defined the `Endpoint` and `Client` public protocols;
- [x] implemented the internal `MakeURLRequestUseCase` use case;
- [x] implemented the `MockURLProtocol` class that mocks requests and responses on `URLSession` instances;
- [x] started writing and updating the `README` file.

Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Reviewed-on: #4
2023-04-16 18:47:59 +00:00

30 lines
1.2 KiB
Swift

//
// HTTPRequestMethod.swift
// Communications
//
// Created by Javier Cicchelli on 10/04/2023.
// Copyright © 2023 Röck+Cöde. All rights reserved.
//
/// Enumeration that represents the available HTTP request methods to use in this library.
public enum HTTPRequestMethod: String {
/// Establishes a tunnel to the service identified by the target resource.
case connect = "CONNECT"
/// Deletes the specified resource.
case delete = "DELETE"
/// Asks for a response identical to a GET request, but without the response body.
case head = "HEAD"
/// Requests a representation of the specified resource, which should only retrieve data.
case get = "GET"
/// Describes the communication options for the target resource.
case options = "OPTIONS"
/// Applies partial modifications to a resource.
case patch = "PATCH"
/// Submits an entity to the specified resource, often causing a change of state or side effect on the server.
case post = "POST"
/// Replaces all current representations of the target resource with the request payload.
case put = "PUT"
/// Performs a message loop-back test along the path to the target resource.
case trace = "TRACE"
}