Decree在Swift中声明性地发出HTTP请求

Decree 是一个简洁且功能强大的框架,通过声明 Web 服务和终结点,为 iOSmacOSLinux 应用提供一种清晰、安全的方式发出 HTTP 请求。在 Swift 中执行 URL 请求通常有两个选项:使用 Foundation 中的 URLSession API 或选择一些较为复杂的框架。Decree 通过轻量设计提供了第三种选择,保持高定制性,同时专注于声明性接口。声明接口 后,向各个终结点发出请求变得简便且类型安全。Decree 可运行于 iOSmacOSLinux 平台,适用于前后端通信,例如与 SpotifyFreshDeskStripe 等服务的集成。

核心功能

  • 类型安全:确保编译期间验证请求和响应的匹配性。
  • 声明式API接口:支持声明不同终结点的输入和输出,简化了复杂 API 的调用。
  • 跨平台兼容:适用于 iOS、macOS 和 Linux,支持前后端统一通讯。
  • 丰富的目录库:包括热门服务的服务声明目录,开发者可轻松集成。

端点类型

Decree 提供四种端点类型:

1. EmptyEndpoint:无输入或输出的端点。

2. InEndpoint:仅需输入参数的端点。

3. OutEndpoint:仅需输出响应的端点。

4. InOutEndpoint:包含输入和输出的端点。

通过这些声明性端点,开发者可以根据需求灵活创建接口调用,提升代码可读性和维护性。

zip
Decree-master.zip 预估大小:74个文件
folder
Decree-master 文件夹
file
.gitmodules 204B
file
.swift-version 4B
file
LICENSE 1KB
folder
Assets 文件夹
file
Header.jpg 137KB
folder
Sources 文件夹
folder
Decree 文件夹
folder
Mocking 文件夹
file
WebServiceMock.swift 19KB
file
Expectations.swift 12KB
file
WebService+AllRequestHandling.swift 4KB
file
WebService+Mocking.swift 968B
file
KeyValueEncoder.swift 12KB
file
Endpoint.swift 4KB
file
Endpoint+MakeRequest.swift 16KB
folder
Basic Types 文件夹
file
File.swift 2KB
file
AuthorizationRequirement.swift 405B
file
InputFormat.swift 601B
file
Authorization.swift 777B
file
OutputFormat.swift 283B
file
EmptyResult.swift 415B
file
DecreeErrorDescribable.swift 287B
file
ErrorHandling.swift 320B
file
ErrorResponse.swift 840B
file
Method.swift 3KB
file
Session.swift 873B
file
DecreeError.swift 26KB
file
NoBasicResponse.swift 193B
folder
Private 文件夹
file
URLRequest+Logging.swift 1KB
file
ProgressObserver.swift 982B
file
WebServiceMock+HandleRequest.swift 6KB
file
HTTPStatus.swift 8KB
file
WebService+MakeRequest.swift 7KB
file
Expectations+Private.swift 2KB
file
FormDataEncoder.swift 1KB
file
RequestInput.swift 316B
file
NSXMLParser_ErrorCode.swift 9KB
file
String+Helpers.swift 839B
file
Endpoint+PrivateMakeRequest.swift 8KB
file
DispatchQueue+Async.swift 347B
file
URLResponse+Logging.swift 753B
file
FormURLEncoder.swift 1KB
file
DecreeRequest.swift 14KB
file
String+TitleCase.swift 509B
file
WebService.swift 5KB
file
Logger.swift 2KB
file
azure-pipelines.yml 380B
file
Package.swift 1KB
file
.gitignore 81B
folder
Tests 文件夹
file
test_swiftpm.sh 49B
file
LinuxMain.swift 117B
folder
DecreeTests 文件夹
file
DownloadTests.swift 8KB
file
MockingTests.swift 32KB
file
AllRequestHandlingTests.swift 3KB
file
DecreeErrorTests.swift 41KB
file
LoggerTests.swift 10KB
file
EndpointPropertiesTests.swift 1KB
folder
Helpers 文件夹
file
Decodable+Helpers.swift 1KB
file
TestURLSession.swift 5KB
file
TestNoStandardsService.swift 2KB
file
TestMinimalService.swift 647B
file
TestService.swift 9KB
file
Result+Helpers.swift 533B
file
AuthenticatedService.swift 1KB
file
Data+Helpers.swift 673B
file
HTTPStatusTests.swift 8KB
file
FormDataEncoderTests.swift 3KB
file
EmptyResultTests.swift 479B
file
XCTestManifests.swift 10KB
file
AuthenticationTests.swift 3KB
file
MakeRequestTestCase.swift 1KB
file
ProgressTests.swift 6KB
file
KeyValueEncoderTests.swift 15KB
file
FileTests.swift 2KB
file
RequestFlowTests.swift 18KB
file
ResponseParsingTests.swift 43KB
file
StatusCodeValidationTests.swift 11KB
file
README.md 9KB
...
zip 文件大小:204.67KB