Dasar HTTP

Routing

Daftarkan endpoint, parameter, route bernama, group, fallback, dan resource controller.

Route web didaftarkan di routes/web.js. File routes/api.js memakai API router yang sama dengan prefix /api otomatis.

Method HTTP

export default function routes(Route) {
  Route.get('/posts', listPosts);
  Route.post('/posts', createPost);
  Route.put('/posts/{id}', replacePost);
  Route.patch('/posts/{id}', updatePost);
  Route.delete('/posts/{id}', deletePost);
  Route.options('/posts', optionsHandler);
}

Route.any() mendaftarkan handler untuk GET, POST, PUT, PATCH, DELETE, dan OPTIONS.

Parameter route

Parameter dapat ditulis dengan format {name} atau :name. Nilainya tersedia di request.params dan sudah melalui decodeURIComponent.

Route.get('/users/{user}', (request) => ({
  id: request.params.user,
}));

Route bernama

Berikan nama pada route untuk menghasilkan URL tanpa menggandakan path di banyak tempat.

Route.get('/users/{user}', showUser).name('users.show');

const url = Route.url('users.show', { user: 42 });
// /users/42

Middleware

Pasang satu atau beberapa middleware pada route. Parameter alias dapat ditambahkan setelah tanda titik dua.

Route.post('/profile', updateProfile)
  .middleware('session', 'csrf', 'auth', 'throttle:20,1');

Group

Group menggabungkan prefix dan middleware untuk sekumpulan route.

Route.group({ prefix: '/admin', middleware: ['session', 'auth'] }, () => {
  Route.get('/dashboard', dashboard);
  Route.get('/users', users);
});

Resource controller

Route.resource() membuat route CRUD konvensional untuk method index, create, store, show, edit, update, dan destroy.

Route.resource('posts', PostController);

Fallback

Gunakan fallback untuk request yang tidak cocok dengan route terdaftar.

Route.fallback((request, response) => {
  return response.view('errors.404', {}, 404);
});

Ketik untuk mencari di seluruh dokumentasi.