Skip to content

Commit 6433d79

Browse files
committed
Update documentation
1 parent ffaf7b9 commit 6433d79

533 files changed

Lines changed: 620 additions & 3065 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

DOCBUILD.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ WEB_DOC_NAME="Web"
3434
xcodebuild docbuild \
3535
-scheme $PACKAGE_NAME \
3636
-derivedDataPath .docbuild \
37-
-destination 'platform=iOS Simulator,name=iPhone 13 mini'
37+
-destination 'platform=iOS Simulator,name=iPhone 14 Pro'
3838

3939
DOC_PATH=$(find .docbuild -type d -name "$WEB_DOC_NAME.doccarchive")
4040

Sources/Web/Web.docc/GettingStarted/FirstRequest.md

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ web client.
2121
struct SomeObjectRequest: Request {
2222
...
2323

24-
var objectResponseConverter: JSONDecoderResponseConverter<SomeObject> {
24+
var successObjectResponseConverter: any ResponseConverter<SomeObject> {
2525
JSONDecoderResponseConverter()
2626
}
2727

28-
var errorResponseConverter: JSONDecoderResponseConverter<APIError> {
28+
var errorObjectResponseConverter: any ResponseConverter<APIError> {
2929
JSONDecoderResponseConverter()
3030
}
3131
}
@@ -50,16 +50,20 @@ If you use `JSONDecoder` or any other converter for each request, you can simpli
5050
description by declaring request protocol in your app.
5151

5252
```swift
53-
protocol MyAppRequest: Request {
54-
associatedtype Object: Decodable
53+
protocol MyAppRequest: Request where SuccessObject: Decodable {
54+
var decoder: JSONDecoder { get }
5555
}
5656

5757
extension MyAppRequest {
58-
var objectResponseConverter: JSONDecoderResponseConverter<Object> {
59-
JSONDecoderResponseConverter()
58+
var decoder: JSONDecoder {
59+
JSONDecoder()
60+
}
61+
62+
var successObjectResponseConverter: any ResponseConverter<SuccessObject> {
63+
JSONDecoderResponseConverter(decoder: JSONDecoder())
6064
}
6165

62-
var errorResponseConverter: JSONDecoderResponseConverter<APIError> {
66+
var errorObjectResponseConverter: any ResponseConverter<APIError> {
6367
JSONDecoderResponseConverter()
6468
}
6569
}
@@ -69,7 +73,7 @@ Then `SomeObjectRequest` can be described as following:
6973

7074
```swift
7175
struct SomeObjectRequest: MyAppRequest {
72-
typealias Object = SomeObject
76+
typealias SuccessObject = SomeObject
7377

7478
let id: String
7579

Sources/Web/Web.docc/GettingStarted/Installation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ let package = Package(
2222
...,
2323
dependencies: [
2424
...,
25-
.package(name: "Network", url: "https://github.com/InstrumentBox/Network", .upToNextMajor(from: "1.0.1")
25+
.package(name: "Network", url: "https://github.com/InstrumentBox/Network", .upToNextMajor(from: "2.0.0")
2626
],
2727
targets: [
2828
.target(..., dependencies: [.product(name: "Web", package: "Network"])

Sources/Web/Web.docc/Request/AuthorizeRequest.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ token.
1313
class MyAppRequestAuthorizer: RequestAuthorizer {
1414
...
1515

16-
func authorizationHeader<Request: Web.Request>(for request: Request) async throws -> Header? {
16+
func authorizationHeader(for request: some Request) async throws -> Header? {
1717
let token = try keychain.fetchToken()
1818
return .bearerAuthorization(with: token)
1919
}

Sources/Web/Web.docc/Request/CreateURLRequest.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,12 @@ extension Method {
4747
The second `URLRequest`'s initializer is
4848

4949
```swift
50-
URLRequest<BodyConverter: Web.BodyConverter>(
50+
URLRequest<Body>(
5151
url: URL,
5252
method: Method,
5353
headers: [String: String]? = nil,
54-
body: BodyConverter.Body,
55-
converter: BodyConverter
54+
body: Body,
55+
converter: some BodyConverter<Body>
5656
) throws
5757
```
5858

Sources/Web/Web.docc/Response/ValidateResponse.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ Properties of response you may want to use to validate response
3030
- `body` contains response's body
3131

3232
Response validator returns disposition which can be one of the following values:
33-
- `.useObjectResponseConverter` to convert and return object as expected result of a request
34-
- `.useErrorResponseConverter` to convert and throw object as error (e.g. `APIError` in case of 4xx)
33+
- `.useSuccessObjectResponseConverter` to convert and return object as expected result of a request
34+
- `.useErrorObjectResponseConverter` to convert and throw object as error (e.g. `APIError` in case of 4xx)
3535
- `.completeWithError(Error)` and throw passed validation error (e.g. content types don't match)
3636

3737
Then you can use response validator for every request in you app

docs/css/documentation-topic.3bca6578.css

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/css/documentation-topic.de084985.css

Lines changed: 0 additions & 9 deletions
This file was deleted.

docs/css/documentation-topic~topic~tutorials-overview.67b822e0.css

Lines changed: 0 additions & 9 deletions
This file was deleted.

docs/css/documentation-topic~topic~tutorials-overview.82acfe22.css

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)