Skip to content
/ SAPI Public

Support API Management System for Developers with Advanced API Testing

Notifications You must be signed in to change notification settings

JYPJUN/SAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

9 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

SAPI

ssafy logo
๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ API ํ†ตํ•ฉ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ

1๏ธโƒฃ ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

1. ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„

๊ฐœ๋ฐœ๊ธฐ๊ฐ„ 24.10.14 ~ 24.11.19

2. ๊ตฌ์„ฑ ํŒ€

ํŒ€์› ์—ญํ•  ์„ธ๋ถ€ ๋‚ด์šฉ
๊ฐ•์„ธํ˜„ Infra, Back-End Developer BE, DB, Infra
๊น€๋ฌธํฌ Front-End Developer FE, ๋””์ž์ธ
๋ฐ•์ค€์˜ Front-End Developer FE, ๋””์ž์ธ, Web Socket
๋ฐ•์ฐฌํ˜ธ Infra, Back-End Developer Leader, BE, Infra, DB
๋ฐ•์šฉ๋นˆ Back-End Developer BE, DB, AWS Lambda Server
์กฐ์„ฑ๋นˆ Front-End Developer FE, ๋””์ž์ธ, Web Socket

3. ๊ธฐํš ์˜๋„ ๋ฐ ๋ชฉํ‘œ

API ๋ช…์„ธ์™€ ๋ฐฑ์—”๋“œ/ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์˜ ํ˜‘์—… ๊ณผ์ •์—์„œ API ๋ช…์„ธ๊ฐ€ ์ž์ฃผ ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜, ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ด ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ์ƒํ™ฉ ๋“ฑ ๊ฐœ๋ฐœ ๊ณผ์ •์—๋Š” ์—ฌ๋Ÿฌ ๋ฌธ์ œ๋“ค์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ณผ์ •์—์„œ API ๋ช…์„ธ๊ฐ€ ๋ณต์žกํ•ด์ง€๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์ œ๋Œ€๋กœ ๋ฐ˜์˜๋˜์–ด์žˆ์ง€ ์•Š๋‹ค๋ฉด ํ˜‘์—… ํšจ์œจ์ด ์ €ํ•˜๋˜๋ฉฐ, ๊ฐœ๋ฐœ ์ผ์ • ์ง€์—ฐ๊ณผ ํ’ˆ์งˆ ์ €ํ•˜๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ, ๊ฐœ๋ฐœ์˜ ์†๋„๋ฅผ ๋†’์ด๊ณ  ํŒ€ ๊ฐ„ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋ฌธ์ œ๋ฅผ ์ตœ์†Œํ™”ํ•˜๋ฉฐ, ๋ช…์„ธ์™€ ๊ตฌํ˜„์˜ ๋ถˆ์ผ์น˜๋ฅผ ์‚ฌ์ „์— ๋ฐฉ์ง€ํ•˜๊ณ ์ž AWS Lambda Server๋ฅผ ์ด์šฉํ•œ Mock API ๊ตฌํ˜„ ๋ฐ ์ž๋™ํ™”๋œ API ๊ฒ€์ฆ ์‹œ์Šคํ…œ์„ ๊ธฐํšํ•˜์˜€์Šต๋‹ˆ๋‹ค.

โญ ๋ชฉํ‘œ

No Content ์„ธ๋ถ€ ๋‚ด์šฉ
1 API ๋ช…์„ธ์„œ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํŒ€ ๊ฐ„ ํ˜‘์—… ๊ฐ•ํ™” ์‹ค์‹œ๊ฐ„ ๋ฌธ์„œ ๋™์‹œ ์ž‘์„ฑ, API ๋ฌธ์„œํ™”
2 ์ž๋™ํ™” ํ…Œ์ŠคํŠธ ๋ฐ Mock API ์„œ๋ฒ„ ์ œ๊ณต Mock API ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ๊ตฌ์ถ•, ํ…Œ์ŠคํŠธ ์ž๋™ํ™”
3 ๋ช…์„ธ์„œ ๊ด€๋ฆฌ ๋ฐ ๊ด€๋ฆฌ ์‹œ๊ฐํ™” ๊ฐœ๋ฐœ ์ง„ํ–‰ ๋Œ€์‹œ๋ณด๋“œ


2๏ธโƒฃ ์„œ๋น„์Šค ๊ธฐ๋Šฅ ์†Œ๊ฐœ

1. API Document

  • API ๋ฌธ์„œํ™”
    : ์ž‘์„ฑ๋œ API ๋ฌธ์„œ๋Š” Overview ํ™”๋ฉด์—์„œ ๋ฌธ์„œํ™”

  • ์›น ๊ธฐ๋ฐ˜ ์—๋””ํ„ฐ ์‹ค์‹œ๊ฐ„ ํŽธ์ง‘ ๊ธฐ๋Šฅ
    : ์›น์†Œ์ผ“์œผ๋กœ ์‹ค์‹œ๊ฐ„ ๋ฌธ์„œ ์ž‘์„ฑ ํ˜‘์—… ๊ธฐ๋Šฅ ๊ตฌํ˜„

  • ๋ช…์„ธ ์ฝ”๋ฉ˜ํŠธ
    : ์ž‘์„ฑ๋œ ๋ฌธ์„œ์— ์ฝ”๋ฉ˜ํŠธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

  • ๋ช…์„ธ ์ถ”์ถœ (export ๊ธฐ๋Šฅ)
    : ์ž‘์„ฑ๋œ API ๋ฌธ์„œ ๋งˆํฌ๋‹ค์šด ์–‘์‹ Export ๊ธฐ๋Šฅ ๊ตฌํ˜„

  • ์ฝ”๋“œ ์Šค๋‹ˆํŽซ
    : ์ž‘์„ฑ๋œ API ๋ฌธ์„œ ์ฝ”๋“œ ์Šค๋‹ˆํŽซ(Axios, Fetch) ๊ธฐ๋Šฅ ๊ตฌํ˜„

2. API Test

  • API Test (Back-End ์‚ฌ์šฉ์ž ๊ธฐ์ค€)
    : ์ž‘์„ฑํ•œ ๋ช…์„ธ์„œ ๊ธฐ๋ฐ˜์œผ๋กœ Back Server์— API TEST ๊ฒฐ๊ณผ ์‚ฐ์ถœ

  • API Test (Front-End ์‚ฌ์šฉ์ž ๊ธฐ์ค€)
    : ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Back Server ์—†์ด๋„ Mock API๋ฅผ ํ†ตํ•ด์„œ ๊ฒฐ๊ณผ FeedBack

  • API OverView
    : ํ…Œ์ŠคํŠธ ์™„๋ฃŒ๋œ ๋ฐ์ดํ„ฐ๋Š” Overview์—์„œ ์‹ค์‹œ๊ฐ„ ํ™•์ธ ๋ฐ ๋ถ„์„ (LS : Local Status // SS : Server Status)

3. API DashBoard

  • API Dashboard
    : ํ…Œ์ŠคํŠธ ์™„๋ฃŒ ์‹œ ์‹ค์‹œ๊ฐ„ ์™„๋ฃŒ ์—ฌ๋ถ€ Graph ๋ชจ๋‹ˆํ„ฐ๋ง

4. ์ถ”๊ฐ€ ๊ธฐ๋Šฅ

  • Workspace Interface
    : ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ ๋ณ„ ํ™˜๊ฒฝ ๊ตฌ์„ฑ

  • Setting ํ™˜๊ฒฝ ๊ตฌ์„ฑ
    : User ์ •๋ณด ๋ณ€๊ฒฝ, Theme ์„ค์ •, Invitation ๊ธฐ๋Šฅ Alarm ๊ธฐ๋Šฅ

  • WorkSpace Setting
    : ์›Œํฌ์ŠคํŽ˜์ด์Šค ์ •๋ณด ๋ณ€๊ฒฝ, ์œ ์ € ์ดˆ๋Œ€



3๏ธโƒฃ ๊ธฐ์ˆ  ์Šคํƒ

Frontend

  • React
  • Tailwind CSS
  • HTML
  • JavaScript
  • ReactQuery
  • Zustand

Backend

  • Java 17
  • SpringBoot 3
  • SpringSecurity
  • SSE
  • MySQL 8.0.23
  • Redis
  • Spring Data JPA
  • QueryDSL
  • AWS Lambda, S3
  • Thymeleaf

Infra

  • AWS EC2
  • Docker
  • Docker Compose
  • Jenkins
  • NGINX
  • Ubuntu 20.04


4๏ธโƒฃ ์•„ํ‚คํ…์ฒ˜



5๏ธโƒฃ ๊ธฐ๋Œ€ํšจ๊ณผ

6๏ธโƒฃ ์ ์šฉ ๊ธฐ์ˆ  ์„ธ๋ถ€์‚ฌํ•ญ

  • ์ถ”ํ›„ ์ž‘์„ฑ

7๏ธโƒฃ Git Graph ๋ฐ ๋ฌธ์„œ ๊ตฌ์กฐ

frontend                                                                    
โ”œโ”€ node_modules                                  
โ”œโ”€ public                                                                   
โ”‚  โ”œโ”€ 404page.JPG                                                           
โ”‚  โ””โ”€ vite.svg                                                              
โ”œโ”€ src                                                                      
โ”‚  โ”œโ”€ api                                                                   
โ”‚  โ”‚  โ”œโ”€ queries                                                            
โ”‚  โ”‚  โ”‚  โ”œโ”€ useApiDashboardQueries.js                                
โ”‚  โ”‚  โ”‚  โ”œโ”€ useApiDocsQueries.js                                        
โ”‚  โ”‚  โ”‚  โ”œโ”€ useApiHistory.js                                               
โ”‚  โ”‚  โ”‚  โ”œโ”€ useApiTestQueries.js                                         
โ”‚  โ”‚  โ”‚  โ”œโ”€ useAPIUserQueries.js                                        
โ”‚  โ”‚  โ”‚  โ”œโ”€ useAuthQueries.js                                             
โ”‚  โ”‚  โ”‚  โ”œโ”€ useCommentsQueries.js                                     
โ”‚  โ”‚  โ”‚  โ”œโ”€ useEnvironmentQueries.js                                  
โ”‚  โ”‚  โ”‚  โ”œโ”€ useNotificationsQueries.js                                 
โ”‚  โ”‚  โ”‚  โ””โ”€ useWorkspaceQueries.js                                    
โ”‚  โ”‚  โ””โ”€ axiosInstance.js                                                   
โ”‚  โ”œโ”€ assets                                                                
โ”‚  โ”œโ”€ components                                                            
โ”‚  โ”‚  โ”œโ”€ common                                                             
โ”‚  โ”‚  โ”‚  โ”œโ”€ Alarm.jsx                                                       
โ”‚  โ”‚  โ”‚  โ”œโ”€ CheckModal.jsx                                                
โ”‚  โ”‚  โ”‚  โ”œโ”€ Environment.jsx                                                
โ”‚  โ”‚  โ”‚  โ”œโ”€ Header.jsx                                                      
โ”‚  โ”‚  โ”‚  โ”œโ”€ Navbar.jsx                                                      
โ”‚  โ”‚  โ”‚  โ”œโ”€ Sidebar_nouse.jsx                                             
โ”‚  โ”‚  โ”‚  โ”œโ”€ TabBar.jsx                                                      
โ”‚  โ”‚  โ”‚  โ””โ”€ TextInput.jsx                                                   
โ”‚  โ”‚  โ”œโ”€ layout                                                             
โ”‚  โ”‚  โ”‚  โ”œโ”€ Layout.jsx                                                      
โ”‚  โ”‚  โ”‚  โ””โ”€ NavigationLayout.jsx                                         
โ”‚  โ”‚  โ””โ”€ sidebar                                                            
โ”‚  โ”‚     โ”œโ”€ ApiDocsSidebar.jsx                                             
โ”‚  โ”‚     โ”œโ”€ ApiTestSidebar.jsx                                              
โ”‚  โ”‚     โ”œโ”€ DashboardSidebar.jsx
โ”‚  โ”‚     โ””โ”€ EnvironmentSidebar.jsx                                        
โ”‚  โ”œโ”€ contexts                                                              
โ”‚  โ”‚  โ”œโ”€ WebSocketProvider.jsx                                           
โ”‚  โ”‚  โ””โ”€ YjsProvider.jsx                                                    
โ”‚  โ”œโ”€ handlers                                                              
โ”‚  โ”‚  โ””โ”€ apiMessagehandler.js                                             
โ”‚  โ”œโ”€ hooks                                                                 
โ”‚  โ”‚  โ”œโ”€ useAuth.jsx                                                        
โ”‚  โ”‚  โ”œโ”€ useFieldStates.jsx                                                 
โ”‚  โ”‚  โ”œโ”€ useOccupationStatus.jsx                                         
โ”‚  โ”‚  โ”œโ”€ useTabs.jsx                                                        
โ”‚  โ”‚  โ””โ”€ useYjs.jsx                                                         
โ”‚  โ”œโ”€ pages                                                                 
โ”‚  โ”‚  โ”œโ”€ ApiTest                                                            
โ”‚  โ”‚  โ”‚  โ”œโ”€ APItest.jsx                                                                              
โ”‚  โ”‚  โ”‚  โ”œโ”€ ApiTestDetail.jsx                                               
โ”‚  โ”‚  โ”‚  โ”œโ”€ ApiTestParameters.jsx                                        
โ”‚  โ”‚  โ”‚  โ”œโ”€ ApiTestRequestBody.jsx                                     
โ”‚  โ”‚  โ”‚  โ””โ”€ ApiTestResponseBody.jsx                                   
โ”‚  โ”‚  โ”œโ”€ Dashboard                                                          
โ”‚  โ”‚  โ”‚  โ”œโ”€ ApiDevelopmentProgress.jsx                               
โ”‚  โ”‚  โ”‚  โ”œโ”€ ApiDevelopmentStatus.jsx                                  
โ”‚  โ”‚  โ”‚  โ””โ”€ DashboardOverview.jsx                                      
โ”‚  โ”‚  โ”œโ”€ docs                                                               
โ”‚  โ”‚  โ”‚  โ”œโ”€ History                                                         
โ”‚  โ”‚  โ”‚  โ”‚  โ”œโ”€ History.jsx                                                  
โ”‚  โ”‚  โ”‚  โ”‚  โ”œโ”€ HistoryDetail.jsx                                          
โ”‚  โ”‚  โ”‚  โ”‚  โ”œโ”€ HistoryParameters.jsx                                   
โ”‚  โ”‚  โ”‚  โ”‚  โ”œโ”€ HistoryRequest.jsx                                       
โ”‚  โ”‚  โ”‚  โ”‚  โ””โ”€ HistoryResponse.jsx                                     
โ”‚  โ”‚  โ”‚  โ”œโ”€ DeleteModal.jsx                                               
โ”‚  โ”‚  โ”‚  โ”œโ”€ HistoryDetail.jsx                                               
โ”‚  โ”‚  โ”‚  โ”œโ”€ LeftSection.jsx                                                 
โ”‚  โ”‚  โ”‚  โ”œโ”€ LeftSectionCategory.jsx                                      
โ”‚  โ”‚  โ”‚  โ”œโ”€ LeftSectionDescription.jsx                                   
โ”‚  โ”‚  โ”‚  โ”œโ”€ LeftSectionName.jsx                                          
โ”‚  โ”‚  โ”‚  โ”œโ”€ LeftSectionPath.jsx                                            
โ”‚  โ”‚  โ”‚  โ”œโ”€ Parameters.jsx                                                 
โ”‚  โ”‚  โ”‚  โ”œโ”€ ParametersAuthType.jsx                                     
โ”‚  โ”‚  โ”‚  โ”œโ”€ ParametersCookies.jsx                                       
โ”‚  โ”‚  โ”‚  โ”œโ”€ ParametersHeaders.jsx                                      
โ”‚  โ”‚  โ”‚  โ”œโ”€ ParametersQueryParameters.jsx                         
โ”‚  โ”‚  โ”‚  โ”œโ”€ Request.jsx                                                     
โ”‚  โ”‚  โ”‚  โ”œโ”€ RequestFormData.jsx                                        
โ”‚  โ”‚  โ”‚  โ”œโ”€ RequestJson.jsx                                                
โ”‚  โ”‚  โ”‚  โ”œโ”€ Response.jsx                                                    
โ”‚  โ”‚  โ”‚  โ”œโ”€ ResponseAdd.jsx                                              
โ”‚  โ”‚  โ”‚  โ”œโ”€ RightSection.jsx                                                
โ”‚  โ”‚  โ”‚  โ”œโ”€ RightSectionCodeSnippet.jsx                              
โ”‚  โ”‚  โ”‚  โ”œโ”€ RightSectionComments.jsx                                 
โ”‚  โ”‚  โ”‚  โ”œโ”€ RightSectionInfo.jsx                                          
โ”‚  โ”‚  โ”‚  โ””โ”€ RightSectionSummary.jsx                                   
โ”‚  โ”‚  โ”œโ”€ Environment                                                        
โ”‚  โ”‚  โ”‚  โ”œโ”€ DraggableRow.jsx                                             
โ”‚  โ”‚  โ”‚  โ”œโ”€ DropdownMenu.jsx                                           
โ”‚  โ”‚  โ”‚  โ””โ”€ Environment.jsx                                                
โ”‚  โ”‚  โ”œโ”€ Settings                                                           
โ”‚  โ”‚  โ”‚  โ”œโ”€ SettingInvitation.jsx                                           
โ”‚  โ”‚  โ”‚  โ”œโ”€ SettingMember.jsx                                            
โ”‚  โ”‚  โ”‚  โ”œโ”€ Settings.jsx                                                    
โ”‚  โ”‚  โ”‚  โ”œโ”€ SettingTheme.jsx                                              
โ”‚  โ”‚  โ”‚  โ”œโ”€ SettingUser.jsx                                                 
โ”‚  โ”‚  โ”‚  โ””โ”€ SettingWorkspace.jsx                                        
โ”‚  โ”‚  โ”œโ”€ Workspace                                                          
โ”‚  โ”‚  โ”‚  โ”œโ”€ CreateWorkspace.jsx                                         
โ”‚  โ”‚  โ”‚  โ”œโ”€ DoneSection.jsx                                               
โ”‚  โ”‚  โ”‚  โ”œโ”€ Header.jsx                                                      
โ”‚  โ”‚  โ”‚  โ”œโ”€ InProgressSection.jsx                                         
โ”‚  โ”‚  โ”‚  โ”œโ”€ InviteUser.jsx                                                  
โ”‚  โ”‚  โ”‚  โ”œโ”€ OptionMenu.jsx                                                
โ”‚  โ”‚  โ”‚  โ”œโ”€ Settings.jsx                                                    
โ”‚  โ”‚  โ”‚  โ”œโ”€ WorkspaceRow.jsx                                            
โ”‚  โ”‚  โ”‚  โ”œโ”€ WorkspaceSelection.jsx                                      
โ”‚  โ”‚  โ”‚  โ””โ”€ WorkspaceTable.jsx                                           
โ”‚  โ”‚  โ”œโ”€ 404page.jsx                                                        
โ”‚  โ”‚  โ”œโ”€ ApiDocsDetail.jsx                                                  
โ”‚  โ”‚  โ”œโ”€ ApiOverview.jsx                                                    
โ”‚  โ”‚  โ”œโ”€ Login.jsx                                                          
โ”‚  โ”‚  โ”œโ”€ SignUp.jsx                                                         
โ”‚  โ”‚  โ””โ”€ Workspace.jsx                                                      
โ”‚  โ”œโ”€ routes                                                                
โ”‚  โ”‚  โ””โ”€ AppRoutes.jsx                                                      
โ”‚  โ”œโ”€ stores                                                                
โ”‚  โ”‚  โ”œโ”€ useAlarmStore.js                                                   
โ”‚  โ”‚  โ”œโ”€ useAuthStore.js                                                    
โ”‚  โ”‚  โ”œโ”€ useEnvironmentStore.js                                          
โ”‚  โ”‚  โ”œโ”€ useNavbarStore.js                                                 
โ”‚  โ”‚  โ”œโ”€ useSidebarStore.js                                                 
โ”‚  โ”‚  โ”œโ”€ useTabStore.js                                                     
โ”‚  โ”‚  โ”œโ”€ useTestStore.js                                                    
โ”‚  โ”‚  โ””โ”€ useThemeStore.js                                                  
โ”‚  โ”œโ”€ styles                                                                
โ”‚  โ”œโ”€ utils                                                                 
โ”‚  โ”‚  โ”œโ”€ connectToStomp.js                                                
โ”‚  โ”‚  โ””โ”€ cookies.js                                                         
โ”‚  โ”œโ”€ App.jsx                                                               
โ”‚  โ”œโ”€ main.jsx                                                              
โ”œโ”€ Dockerfile                                                               
โ”œโ”€ eslint.config.js                                                         
โ”œโ”€ index.html                                                               
โ”œโ”€ main.cjs                                                                 
โ”œโ”€ nginx.conf                                                               
โ”œโ”€ package-lock.json                                                        
โ”œโ”€ package.json                                                             
โ”œโ”€ postcss.config.js                                                        
โ”œโ”€ README.md                                                                
โ”œโ”€ tailwind.config.js                                                       
โ””โ”€ vite.config.js                                                           

About

Support API Management System for Developers with Advanced API Testing

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published