# 请求方法

URL: https://caijiao.org/ky/methods
Source: docs/ky/methods.md
Description: 详细讲解 Ky 支持的 GET、POST、PUT、DELETE 等 HTTP 请求方法及使用示例。

Ky 支持常见的 HTTP 方法，包括 GET、POST、PUT、PATCH、DELETE 等。下面介绍每种方法的使用方式。

## GET 请求

用于获取数据，通常带有查询参数：

```javascript
import ky from 'ky';

async function fetchPosts() {
  const posts = await ky.get('https://api.example.com/posts', {
    searchParams: { page: 1, limit: 10 }
  }).json();
  console.log(posts);
}

fetchPosts();
````

## POST 请求

用于创建资源，通常带有请求体：

```javascript
import ky from 'ky';

async function createPost() {
  const post = await ky.post('https://api.example.com/posts', {
    json: { title: 'New Post', content: 'Hello World' }
  }).json();
  console.log(post);
}

createPost();
```

## PUT 请求

用于更新整个资源：

```javascript
import ky from 'ky';

async function updatePost() {
  const post = await ky.put('https://api.example.com/posts/1', {
    json: { title: 'Updated Post', content: 'Updated content' }
  }).json();
  console.log(post);
}

updatePost();
```

## PATCH 请求

用于部分更新资源：

```javascript
import ky from 'ky';

async function patchPost() {
  const post = await ky.patch('https://api.example.com/posts/1', {
    json: { title: 'Patched Title' }
  }).json();
  console.log(post);
}

patchPost();
```

## DELETE 请求

用于删除资源：

```javascript
import ky from 'ky';

async function deletePost() {
  await ky.delete('https://api.example.com/posts/1');
  console.log('删除成功');
}

deletePost();
```

## 小结

* Ky 提供便捷的方法调用，方法名与 HTTP 方法对应。
* 支持传递 `json`、`searchParams`、`headers` 等选项。
* 所有请求均可使用 `.json()`、`.text()` 等方法解析响应。
