# args-api
Shared API contract for [args](https://args.io) — resource types and endpoint definitions used by the args backend, CLI, and frontend.
> Published primarily so that [`args-cli`](https://crates.io/crates/args-cli) can be installed via `cargo install`. Most users will not depend on this crate directly.
## What's in here
- **`resource/`** — Serializable response types (`UserResource`, `RepositoryResource`, `ReviewResource`, etc.).
- **`endpoint/`** — Zero-sized types implementing the `Endpoint` trait, pairing an HTTP method and path with request/response types.
- **Core traits** — `ApiResource`, `ApiRequest`, and `Endpoint`, plus `#[derive(ApiResource)]` / `#[derive(ApiRequest)]` from the companion [`args-api-derive`](https://crates.io/crates/args-api-derive) crate.
## Example
```rust
use args_api::endpoint::user::GetUser;
use args_api::Endpoint;
assert_eq!(GetUser::PATH, "/user");
assert_eq!(GetUser::METHOD, http::Method::GET);
```
## License
Licensed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). Copyright © args contributors.