---
title: Backend_training v1
---
**新增 Todo**
----
新增一條 Todo 項目
* **URL**
/todo
* **Method:**
`POST`
* **URL Params**
None
* **Data Params**
```json
{
"title": "title"
}
```
* **Success Response:**
* **Code:** 201 <br />
**Content:** `{ "message" : "added todo successfully" }`
* **Error Response:**
* **Code:** 422 UNPROCESSABLE <br />
OR
* **Code:** 500 INTERNAL_ERROR <br />
* **Sample Call:**
```javascript
$.ajax({
url: "/todo",
dataType: "json",
type : "POST",
success : function(r) {
console.log(r);
}
});
```
**取得 Todo 列表**
----
取得 Todo 項目
* **URL**
/todo
* **Method:**
`GET`
* **URL Params**
None
* **Data Params**
None
* **Success Response:**
* **Code:** 200 <br />
**Content:**
```josn
{
"todos": [
{
"id"
"title": "test",
"created_at": "2022-09-13T16:55:27Z",
"updated_at": "2022-09-13T16:55:27Z",
"is_done": true,
"completed_at": "2022-09-14T16:47:52Z"
}
]
}
```
* **Error Response:**
* **Code:** 500 INTERNAL_ERROR <br />
<!-- **Content:** `{ error : "Log in" }` -->
* **Sample Call:**
```javascript
$.ajax({
url: "/todo",
dataType: "json",
type : "GET",
success : function(r) {
console.log(r);
}
});
```
**修改 Todo**
----
修改 Todo 項目
* **URL**
/todo/:id
* **Method:**
`PUT`
* **URL Params**
**Required:**
`id=[integer]`
* **Data Params**
```json
{
"title": "title"
}
```
* **Success Response:**
* **Code:** 204 <br />
**Content:** `{ "message" : "updated todo successfully" }`
* **Error Response:**
* **Code:** 422 UNPROCESSABLE <br />
OR
* **Code:** 500 INTERNAL_ERROR <br />
* **Sample Call:**
```javascript
$.ajax({
url: "/todo/1",
dataType: "json",
type : "PUT",
success : function(r) {
console.log(r);
}
});
```
**刪除 Todo**
----
刪除 Todo 項目
* **URL**
/todo/:id
* **Method:**
`DELETE`
* **URL Params**
**Required:**
`id=[integer]`
* **Data Params**
None
* **Success Response:**
* **Code:** 204 <br />
**Content:** `{ "message" : "deleted todo successfully" }`
* **Error Response:**
* **Code:** 422 UNPROCESSABLE <br />
OR
* **Code:** 500 INTERNAL_ERROR <br />
* **Sample Call:**
```javascript
$.ajax({
url: "/todo/1",
dataType: "json",
type : "DELETE",
success : function(r) {
console.log(r);
}
});
```
**切換 Todo done and undone**
----
刪除 Todo 項目
* **URL**
/todo/:id/done
* **Method:**
`POST`
* **URL Params**
**Required:**
`id=[integer]`
* **Data Params**
None
* **Success Response:**
* **Code:** 204 <br />
**Content:** `{ "message" : "switch is_done successfully" }`
* **Error Response:**
* **Code:** 422 UNPROCESSABLE <br />
OR
* **Code:** 500 INTERNAL_ERROR <br />
* **Sample Call:**
```javascript
$.ajax({
url: "/todo/1/done",
dataType: "json",
type : "POST",
success : function(r) {
console.log(r);
}
});
```