Honoã®å§ãæ¹ â ååã®JSONãè¿ãå°ããªAPIãäœãã
URLã«åãåŠçã§ãååãè¿ã
- ããŒã«ã«ã®ååAPIãèµ·å
- JSONãš404ã®éã
- ãã¬ãŒã ã¯ãŒã¯ãšå®è¡ç°å¢ã®åºå¥
ãŸãããããã®JSONãè¿ã
Node.jsã®ãµããŒãäžã®LTSãšnpmãçšæããŸãããã®ç¢ºèªã¯Node.js 24ã§è¡ããŸãããæ°ããç·Žç¿ãã©ã«ããŒã§å®è¡ããŠãã ããã
mkdir hono-products-demo
cd hono-products-demo
npm init -y
npm install hono @hono/node-server
server.mjsãäœããŸãã8787çªã空ããŠããããšã確èªããŸãã
import { Hono } from 'hono';
import { serve } from '@hono/node-server';
const app = new Hono();
app.get('/api/products/apple', (c) => {
return c.json({
name: 'ããã',
price: 200,
});
});
serve({
fetch: app.fetch,
hostname: '127.0.0.1',
port: 8787,
});
node server.mjs
ãã©ãŠã¶ãŒã§http://127.0.0.1:8787/api/products/appleãéããŸããnameãããããpriceã200ãªãæåã§ãã/missingãéãã404ã®å¿çãšæ¯ã¹ãŸããããçµãã£ããããã®ãµãŒããŒã®ç«¯æ«ã§Ctrl+CãæŒããŸãã
GETããã¹ãå¿çãåãã
| èŠçŽ | ä»åã®åœ¹å² |
|---|---|
| GET | ååãèŠãæ¹æ³ |
| ãã¹ | ç»é²ããååã®è¡ãå |
| c.json | ååãJSONã§è¿ã |
| Node.jsã¢ããã¿ãŒ | HTTPã®åãä»ããšHonoãæ¥ç¶ |
åºå®ã®ååãè¿ãç·Žç¿ãªã®ã§ãDBãã¢ã«ãŠã³ãã¯äžèŠã§ããè²©å£²ã»æ³šæAPIã«ãããªããå ¥åæ€èšŒãèªèšŒãšèªå¯ãä¿åã倱ææã®å¿çãªã©ãå¥ã«èšèšããŸãã
ãµãŒããŒãèµ·åããªããã¹ããã§ãã
Honoã®app.request()ãžãªã¯ãšã¹ããæž¡ããšãå¿çãæ€æ»ã§ããŸãããã ããå
¬éãããã¯ãŒã¯ãæ¬çªã®å®è¡ç°å¢ãŸã§ç¢ºèªããããšã«ã¯ãªããŸãããJestå
¥éã§æåŸ
å€ã®æ¯èŒãåŠãã ããåååãšã¹ããŒã¿ã¹ã®æ€æ»ãžã€ãªããããŸãã
ããããè©°ãŸããã€ã³ã
- ããŒãã䜿çšäžïŒå¥ã®ç©ºããŠããçªå·ãžå€æŽããŸããä»ã®ãµãŒããŒããŸãšããŠæ¢ããŸããã
- 404ïŒHTTPã®æ¹æ³ãšãã¹ã確ãããŸãããã³ãã©ãŒã®ç»é²é ãåäœã«åœ±é¿ããŸãã
- ãã©ãŠã¶ãŒã®CORSãšã©ãŒïŒãªãªãžã³ã®æ¡ä»¶ã確èªããŸããCORSãèªèšŒãæš©éãã§ãã¯ã®ä»£ããã«ããŸããã
ããå°ã詳ããïŒå¥ã®ç°å¢ãžç§»ã
Honoã¯Fetchã»Requestã»Responseãªã©ã®WebæšæºAPIã䜿ããŸããç°å¢ããšã®ã¢ããã¿ãŒãèšå®ã¯ç°ãªããNode.jsã®ãã¡ã€ã«ã¢ã¯ã»ã¹ãªã©ããã¹ãŠã®å®è¡ç°å¢ã§ãã®ãŸãŸäœ¿ãããšã¯éããŸãããWorkersã§å ¬éããéã¯ãå ¬åŒãã³ãã¬ãŒããç§å¯ã®ç®¡çãå©çšæ ãDBãå€éšéä¿¡ã確èªããŸãã
ãã³ã®ã³å çã®ãŸãšã
ãHonoãã£ãŠåºãŠããããURLã«åãåŠçãéžã³ãå¿çãè¿ãå°ããªWebãã¬ãŒã ã¯ãŒã¯ããšæãã°ã ãããOKïŒ ãŸãäžã€ã®ååã®JSONãš404ãèŠæ¯ã¹ãŠã¿ããã
åèè³æ
- HonoïŒNode.js â ã¢ããã¿ãŒã»èµ·åã»çµäº
- HonoïŒã«ãŒãã£ã³ã° â ãã¹ãšç»é²é
- HonoïŒãã¹ã â app.requestãšå¿çæ€æ»
- HonoïŒæ€èšŒ â å®è¡æå ¥åæ€èšŒ
- HonoïŒCORS â ãªãªãžã³ã®å¶åŸ¡
- Node serverïŒãªãã·ã§ã³ â hostnameãªãã·ã§ã³
- MDNïŒCORS â ãã©ãŠã¶ãŒã®å¥ãªãªãžã³ã®å¶åŸ¡