Aprann itilize routaj nan yon API ak ExpressJS

Dènye mizajou: 18 Jan. 2024 11:27 a.m.
Tag :
Reading Duration : 0:05:00
Vizyalizasyon : 16
Disponib an : Kreyòl Ayisyen

Nan titoryèl sa, nou pral aprann itilize routaj nan yon API. Routaj fè referans ak fason endpoint(URI) yon aplikasyon dwe reponn sou chak rekèt yon kliyan fè.

Si toutfwa ou kòmanse gen anpil endpoint nan yon API, w ap rive wè nesesite pou w divize endpoint yo paske yap gonfle nan yon sèl fichye.

Ekzanp:

  • Endpoint pou /posts apa.
  • Endpoint pou /users apa.
  • Elatriye....

Li posib pou w fè divizyon sa ak Router anndan libreri express la.

Si yerachi wèb API ou a, konsa:

api / ---| --- package.json ---| --- server.js

Kote server.js genyen kòd sa yo:

import express from 'express'

const app = express()

app.get("/", (req, res) => {
  res.send({msg: "Hello"})
})

app.get("/users", (req, res) => {
  res.json([]).status(200)
})
app.post("/users", (req, res) => {
  res.sendStatus(201)
})

app.get("/posts", (req, res) => {
  res.json([])
})

app.post("/posts", (req, res) => {
  res.sendStatus(201)
})

Olye pou tout endpoint yo, melanje ansanm nan yon sèl fichye. Nou kapab separe yo, pou chak genyen rout pou chak sèvis.

Pou kounya, nou gen 2 sèvis ki se:

  1. Posts
  2. Users

Nap kreye 2 nouvo fichye anndan yon nouvo dosye ki pote non routes.

api / ---| --- routes / --- | --- | --- | user.js --- | --- | --- | post.js ---| --- package.json ---| --- server.js

Kontni fichye post.js la se:

import express from  'express'

const router = express.Router()

router.get("/", (req, res) => {
  res.json([])
})

router.post("/", (req, res) => {
  res.sendStatus(201)
})

module.exports = router;

Olye de app, kounya nou itilize router pito:

const router = express.Router()

Epi nou pa bliye ekspòte modil la.

module.exports = router;

Nap fè menm bagay la, pou fichye user.js la.

import express from  'express'

const router = express.Router()

router.get("/", (req, res) => {
  res.json([]).status(200)
})
router.post("/", (req, res) => {
  res.sendStatus(201)
})

Kounya nou fin defini 2 rout nou genyen nan aplikasyon an. Se moman pou n byen itilize yo, nan fichye server.js la.

import express from 'express'
import user from './routes/user'
import post from './routes/post'

const app = express()

app.use('/v1/users', user)
app.use('/v1/posts', post)

const PORT = 3000
app.listen(PORT, () => {
  console.log(`Server running on http//:localhost:${PORT}`)
})

Nou jis itilize metòd .use() la, pou n pwente chemen sa sou nouvo rout separe nou genyen yo.

Nan itilizasyon sa yo, chemen konplè a, se ap yon konkatenasyon chemen /v1/users + chemen ki nan fichye user.js la ki se "/".

NOTE: Mwen mete chemen yo kòmanse ak /v1/. Se yon pratik tout API genyen, pou w kapab vèsyone API yo. Sa pratik tou, pou si pi devan ou vle pase nan lòt vèsyon san efase ansyen vèsyon an.