Espresso Martini
is a vapor-powered mock server. It allows you you to mock HTTP requests easily, so you worry about the things that matter, and not have to wait on APIs to be live.
Just configure your request/response pairs, known as NetworkExchange
, run the server, and you are good to go. Requests made to the configured hostname and port will be intercepted and the server will return any desired response.
It supports different types of data, response headers and all HTTP response codes.
The library is fully tested and documented.
- Xcode 13.2+
- Swift 5.6+
- iOS 13+
- macOS 12+
When running on iOS you will get a threading warning, which is a known issue with NIO and can be safely ignored.
- Add support for folder based request/response pairs
- Add support for a global delay
- Add support for a delay on a per
networkExchange
basis - Add a CLI
- Add support for retry-able request
- Add support for polling requests
- Add support for customised response based on query parameters
Open your Package.swift
file and add the following as your dependency.
dependencies: [
.package(url: "https://github.com/TheInkedEngineer/Espresso-Martini", from: "1.0.0")
]
Then add the following to your target's dependency:
targets: [
.target(
name: "MyTarget",
dependencies: [
.product(name: "https://github.com/TheInkedEngineer/Espresso-Martini", package: "Espresso-Martini")
]
)
]
- Open your app in Xcode
- In the Project Navigator, click on the project
- in the Project panel, click on the project
- Go to the Package Dependencies tab
- Click on the
+
button - Insert the
https://github.com/TheInkedEngineer/Espresso-Martini
url in the search bar and press Enter - Click on the
Add Package
button - Follow the Xcode's dialog to install the SDK
- Clone the repo
git clone git@github.com:TheInkedEngineer/Espresso-Martini.git
cd Espresso-Martini
make
-- you might need to run it withsudo
privileges.
Here is a dedicated markdown file containing the documentation.
Working on your first Pull Request? You can learn how from this free series How to Contribute to an Open Source Project on GitHub