img-adonis
#fullstack

HttpContext adalah objek yang berisi semua data & utilitas terkait HTTP request yang masuk.

Setiap kali client manggil route, Adonis bakal bikin 1 instance HttpContext untuk request itu.

Isinya kaya:

Dan ini otomatis di-inject ke controller action sebagai parameter.

Contoh Sederhana

async store({ request, response }: HttpContext) {
  const body = request.body()
  return response.json(body)
}

{ request, response } itu diambil dari HttpContext.

Bagian-Bagian HttpContext

  1. request untuk Ngambil data masuk:
request.body()
request.input('email')
request.only(['email', 'password'])
request.headers()
request.method()
request.url()

  1. response untuk Ngirim balik ke client:
response.ok({ message: 'Nice' })
response.status(201).json({ id: 1 })
response.notFound()
response.unauthorized()
response.redirect('/login')

  1. params untuk route param:
// route
router.get('/users/:id', ...)

// controller
params.id

  1. auth untuk login/logout dan auth state:
await auth.use('web').authenticate()
const user = auth.user

  1. session (kalau pakai session-based auth)
session.put('cart', [1, 2, 3])
session.get('cart')

  1. route untuk mengetahui informasi tentang route yang sedang berjalan
route.name
route.pattern

  1. logger (Logging khusus untuk request):
logger.info('User created!')