Mention cli and httpmock in README.md (#475)
* Mention cli and httpmock in README.md * Add fix by @ahirner Co-authored-by: Alexander Hirner <6055037+ahirner@users.noreply.github.com> --------- Co-authored-by: Alexander Hirner <6055037+ahirner@users.noreply.github.com>
This commit is contained in:
parent
359f4f56cc
commit
51db1278ed
10
README.md
10
README.md
|
@ -7,6 +7,10 @@ futures for `async` API calls and `Streams` for paginated interfaces.
|
||||||
It generates a type called `Client` with methods that correspond to the
|
It generates a type called `Client` with methods that correspond to the
|
||||||
operations specified in the OpenAPI document.
|
operations specified in the OpenAPI document.
|
||||||
|
|
||||||
|
Progenitor can also generate a CLI to interact with an OpenAPI service
|
||||||
|
instance, and [`httpmock`](https://crates.io/crates/httpmock) helpers to
|
||||||
|
create a strongly typed mock of the OpenAPI service.
|
||||||
|
|
||||||
The primary target is OpenAPI documents emitted by
|
The primary target is OpenAPI documents emitted by
|
||||||
[Dropshot](https://github.com/oxidecomputer/dropshot)-generated APIs, but it
|
[Dropshot](https://github.com/oxidecomputer/dropshot)-generated APIs, but it
|
||||||
can be used for many OpenAPI documents. As OpenAPI covers a wide range of APIs,
|
can be used for many OpenAPI documents. As OpenAPI covers a wide range of APIs,
|
||||||
|
@ -56,6 +60,7 @@ Similarly, if there is a `format` field set to `uuid`:
|
||||||
```
|
```
|
||||||
|
|
||||||
And if there are any websocket channel endpoints:
|
And if there are any websocket channel endpoints:
|
||||||
|
|
||||||
```diff
|
```diff
|
||||||
[dependencies]
|
[dependencies]
|
||||||
+base64 = "0.21"
|
+base64 = "0.21"
|
||||||
|
@ -63,6 +68,7 @@ And if there are any websocket channel endpoints:
|
||||||
```
|
```
|
||||||
|
|
||||||
If types include regular expression validation:
|
If types include regular expression validation:
|
||||||
|
|
||||||
```diff
|
```diff
|
||||||
[dependencies]
|
[dependencies]
|
||||||
+regress = "0.4.1"
|
+regress = "0.4.1"
|
||||||
|
@ -90,6 +96,8 @@ changes (when its mtime is updated).
|
||||||
Progenitor includes an interface appropriate for use in a
|
Progenitor includes an interface appropriate for use in a
|
||||||
[`build.rs`](https://doc.rust-lang.org/cargo/reference/build-scripts.html)
|
[`build.rs`](https://doc.rust-lang.org/cargo/reference/build-scripts.html)
|
||||||
file. While slightly more onerous than the macro, a builder has the advantage of making the generated code visible.
|
file. While slightly more onerous than the macro, a builder has the advantage of making the generated code visible.
|
||||||
|
The capability of generating a CLI and `httpmock` helpers is only available using `build.rs`
|
||||||
|
and the `Generator` functions `cli` and `httpmock` respectively.
|
||||||
|
|
||||||
The `build.rs` file should look something like this:
|
The `build.rs` file should look something like this:
|
||||||
|
|
||||||
|
@ -140,7 +148,6 @@ You'll need to add the following to `Cargo.toml`:
|
||||||
Note that `progenitor` is used by `build.rs`, but the generated code required
|
Note that `progenitor` is used by `build.rs`, but the generated code required
|
||||||
`progenitor-client`.
|
`progenitor-client`.
|
||||||
|
|
||||||
|
|
||||||
### Static Crate
|
### Static Crate
|
||||||
|
|
||||||
Progenitor can be run to emit a stand-alone crate for the generated client.
|
Progenitor can be run to emit a stand-alone crate for the generated client.
|
||||||
|
@ -195,7 +202,6 @@ percent-encoding = "2.2.0"
|
||||||
reqwest = { version = "0.11.13", default-features=false, features = ["json", "stream"] }
|
reqwest = { version = "0.11.13", default-features=false, features = ["json", "stream"] }
|
||||||
serde = { version = "1.0.152", features = ["derive"] }
|
serde = { version = "1.0.152", features = ["derive"] }
|
||||||
serde_urlencoded = "0.7.1"
|
serde_urlencoded = "0.7.1"
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
The dependency versions in the generated `Cargo.toml` are the same as the
|
The dependency versions in the generated `Cargo.toml` are the same as the
|
||||||
|
|
Loading…
Reference in New Issue