All pages
Powered by GitBook
1 of 1

Loading...

Overview

API Schema and Handler

1. Design Principle

Moleculer API GatewayλŠ” μ•„λž˜ 원칙을 기반으둜 κ³ μ•ˆλ˜μ—ˆμŠ΅λ‹ˆλ‹€.

  • λΆ„μ‚° μ‹œμŠ€ν…œμ•ˆμ—μ„œ μœ λ™μ μœΌλ‘œ μž‘λ™ν•©λ‹ˆλ‹€.

    • Persistence Layerλ₯Ό κ°–μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

  • "λΆ„μ‚° μ„œλΉ„μŠ€ -> API" 쒅속성을 μ΅œμ†Œν™”ν•©λ‹ˆλ‹€.

    • μ„œλΉ„μŠ€ API μŠ€ν‚€λ§ˆλŠ” JSON ν…μŠ€νŠΈμž…λ‹ˆλ‹€.

    • λΆ„μ‚° μ„œλΉ„μŠ€ ν˜ΈμΆœμ‹œ 인증 λ“±μ˜ μ»¨ν…μŠ€νŠΈλ₯Ό νŒŒλΌλ―Έν„°λ‘œ λ§΅ν•‘ν•˜λ„λ‘ μœ λ„ν•©λ‹ˆλ‹€.

  • ν™•μž₯ κ°€λŠ₯ν•œ μ»΄ν¬λ„ŒνŠΈ νŒ¨ν„΄μ„ μ§€ν–₯ν•©λ‹ˆλ‹€.

    • ν”„λ‘œν† μ½œ ν”ŒλŸ¬κ·ΈμΈμ€ μ„œλ²„, 미듀웨어, μŠ€ν‚€λ§ˆ, ν•Έλ“€λŸ¬μ˜ λͺ¨λ“  뢀뢄을 ν™•μž₯ν•©λ‹ˆλ‹€.

    • μ ‘κ·Ό μ œμ–΄ 정책은 ν”„λ‘œν† μ½œλ³„ μ—”λ“œν¬μΈνŠΈκ°€ μ•„λ‹Œ μ•‘μ…˜, μ΄λ²€νŠΈμ— μ μš©λ©λ‹ˆλ‹€.

  • λ„€νŠΈμ›Œν‚Ή 및 볡원 νŒ¨ν„΄μ— κ΄€μ—¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

    • λΆ„μ‚° μ„œλΉ„μŠ€μ™€ API GatewayλŠ” μ–΄λŒ‘ν„°(Broker)둜 μ—°κ²°λ©λ‹ˆλ‹€.

    • λΆ„μ‚° νŠΈλžœμž­μ…˜μ„ μœ λ„ν•˜κ±°λ‚˜ κ΄€μ—¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μ•„μšΈλŸ¬ λΆ„μ‚° μ„œλΉ„μŠ€ 및 μ„œλΉ„μŠ€ λΈŒλ‘œμ»€μ—μ„œ κΈ°λŒ€λ˜λŠ” νŒ¨ν„΄μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  • λΆ„μ‚° μ„œλΉ„μŠ€μ˜ ν”„λ‘œμ‹œμ €λŠ” λ¬΄μƒνƒœλ₯Ό μ§€ν–₯ν•©λ‹ˆλ‹€.

    • ν”„λ‘œμ‹œμ €λŠ” 인증 μ»¨ν…μŠ€νŠΈλ₯Ό κ³ λ €ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

    • ν”„λ‘œμ‹œμ €λŠ” μ ‘κ·Ό μ œμ–΄λ₯Ό κ³ λ €ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

    • ν”„λ‘œμ‹œμ €λŠ” κ°€λŠ₯ν•œ 멱등성을 갖도둝 κ³ λ €λ©λ‹ˆλ‹€.

  • μ„œλΉ„μŠ€ λΈŒλ‘œμ»€λŠ” λΆ„μ‚° μ‹œμŠ€ν…œμ„ μœ„ν•œ 볡원 νŒ¨ν„΄μ„ κ΅¬μ„±ν•©λ‹ˆλ‹€.

    • νšŒλ‘œμ°¨λ‹¨κΈ°

    • 격벽

    • μž¬μ‹œλ„

    • μš”μ²­ 큐

2. API Schema

μ΄ν•˜μ—μ„œ μ„œλΉ„μŠ€ API μŠ€ν‚€λ§ˆλŠ” λΆ„μ‚° ν™˜κ²½μ˜ 뢀뢄적인 API μŠ€ν‚€λ§ˆλ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€. Gateway API μŠ€ν‚€λ§ˆλŠ” Gatewayμ—μ„œ ν†΅ν•©λœ API μŠ€ν‚€λ§ˆλ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.

μ„œλΉ„μŠ€ API μŠ€ν‚€λ§ˆλŠ” JSON ν…μŠ€νŠΈλ‘œ Gateway에 μ „λ‹¬λ©λ‹ˆλ‹€. μŠ€ν‚€λ§ˆ λ°μ΄ν„°μ˜ 직렬화 및 λΉ„μ§λ ¬ν™”λŠ” MSA λΌμ΄λΈŒλŸ¬λ¦¬μ— λ‹¬λ ΈμŠ΅λ‹ˆλ‹€. μ•„λž˜ μ˜ˆμ‹œμ—μ„œλŠ” Node.js ν™˜κ²½μ„ κΈ°μ€€μœΌλ‘œ μ„œλΉ„μŠ€ API μŠ€ν‚€λ§ˆλ₯Ό JavaScript 객체둜 ν‘œκΈ°ν•©λ‹ˆλ‹€.