https://github.com/evancooper9/rxecnetworking
An extension of ECNetworking. https://github.com/EvanCooper9/ECNetworking
https://github.com/evancooper9/rxecnetworking
Last synced: 5 months ago
JSON representation
An extension of ECNetworking. https://github.com/EvanCooper9/ECNetworking
- Host: GitHub
- URL: https://github.com/evancooper9/rxecnetworking
- Owner: EvanCooper9
- License: mit
- Created: 2020-11-16T14:22:08.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2021-05-13T01:36:08.000Z (about 5 years ago)
- Last Synced: 2023-03-09T05:36:21.007Z (over 3 years ago)
- Language: Swift
- Homepage:
- Size: 12.7 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# RxECNetworking
An extension of [ECNetworking](https://github.com/EvanCooper9/ECNetworking).
## Installation
### SPM
```swift
.package(url: "https://github.com/EvanCooper9/RxECNetworking", from: "2.0.0")
```
## Usage
### Sending Requests
Sending requests is reactive. Only the syntax is changed.
```swift
let request = ListUsersRequest(online: true)
network.send(request)
.subscribe(onSuccess: { users in
showUsers(users)
})
.disposed(by: disposeBag)
```
### Actions
Actions are also reactive, all action protocols gain an `Rx` prefix, and require a `DisposeBag`.
```swift
struct AuthenticationAction: RxRequestWillBeginAction {
let disposeBag = DisposeBag()
func requestWillBegin(_ request: NetworkRequest) -> Single
guard request.requiresAuthentication else { .just(request) }
// add authentication headers
return .just(request)
}
}
```