> [!hint]- `query`が空のときは
> `&[("", "")]`を指定する。
## [[Bearer認証]]のGETリクエスト
```rust
async fn get_request<T: Serialize + ?Sized, R: DeserializeOwned>(
token: &str,
path: &str,
query: &T,
) -> Result<R, anyhow::Error> {
Ok(reqwest::Client::new()
.get(format!("{}{}", BASE_URL, path))
.query(query)
.bearer_auth(token)
.send()
.await?
.json::<R>()
.await?)
}
```
## [[x-www-form-urlencoded]]のPOSTリクエスト
https://docs.rs/reqwest/0.9.18/reqwest/struct.RequestBuilder.html#method.form
```rust
async fn post_request<Q: Serialize + ?Sized, F: Serialize, R: DeserializeOwned>(
token: &str,
path: &str,
query: &Q,
form: &F,
) -> Result<R, anyhow::Error> {
Ok(reqwest::Client::new()
.post(format!("{}{}", BASE_URL, path))
.query(query)
.bearer_auth(token)
.form(form)
.send()
.await?;
.json::<R>()
.await?)
}
```