Skip to content

Repository files navigation

RESTFUL JSON API WITH RUBY ON RAILS

RESTful API Todo App menggunakan Ruby on Rails, meliputi otentikasi JWT, CRUD Todos, CRUD Items (nested), pagination, dan versioning API.


1. Authentication Flow

1.1 User Registration — POST /signup

Membuat akun pengguna baru.

Endpoint: /signup
Method: POST
Status: 201 Created

Sign up


1.2 User Login — POST /auth/login

Menggunakan kredensial untuk mendapatkan token autentikasi (JWT).

Endpoint: /auth/login
Method: POST
Response: Mengembalikan auth_token
Token ini digunakan di semua request berikutnya sebagai:

Login


2. Todos API (CRUD Level 1)

Semua endpoint di bawah ini memerlukan header:

2.1 Create Todo — POST /todos

Membuat sumber daya Todo baru.

Status: 201 Created

Post Todos


2.2 Get All Todos — GET /todos

Mengambil seluruh Todo milik user yang sedang login.

Status: 200 OK

Get Todos


2.3 Get Single Todo — GET /todos/:id

Mengambil detail Todo tertentu.

Contoh: /todos/1
Status: 200 OK

Get Todo


2.4 Update Todo — PUT /todos/:id

Memperbarui judul Todo.

Status: 204 No Content

Put Todo


2.5 Delete Todo — DELETE /todos/:id

Menghapus Todo dari database.

Status: 204 No Content

Delete Todo


3. Items API (CRUD Nested)

Item adalah sumber daya yang berada di dalam Todo (nested resources).

3.1 Create Item — POST /todos/:todo_id/items

Menambahkan item baru ke Todo tertentu.

Status: 201 Created
Contoh: /todos/2/items

Post Item


3.2 Update Item — PUT /todos/:todo_id/items/:id

Mengubah atribut item (mis. done: true).

Status: 204 No Content

Put Item


3.3 Delete Item — DELETE /todos/:todo_id/items/:id

Menghapus item tertentu.

Status: 204 No Content

Delete Item


4. Advanced Features

4.1 Pagination — GET /todos?page=&per_page=

Menampilkan hasil secara bertahap untuk data yang banyak.

Contoh:
/todos?page=1 → Mengambil semua data pada halaman ke-1.

/todos?page=3 → Mengambil semua data pada halaman ke-3.

/todos?page=2&per_page=15 → Mengambil 15 data pada halaman ke-2.

/todos?page=3&per_page=20 → Mengambil 20 data pada halaman ke-3.

Pagination


Tech

Created With

Ruby Rails Postgres

Credit

https://www.digitalocean.com/community/tutorials/build-a-restful-json-api-with-rails-5-part-one


About

API-only Rails application

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages