티스토리 뷰
querystring을 통해 배열을 받을수 있는 방법은 여러가지가 있습니다
예를 들어서 여러개의 카테고리 정보를 받는 path가 있다고 가정해봅시다
aaa.com?category_name=food
그런데 category_name 이라는 변수명으로 여러개의 카테고리 정보를 받고 싶은경우에 어떻게 할수 있을까요?
1. 콤마 또는 다른 구분자를 이용해 값을 연결
aaa.com?category_name=food,health,beauty
이런식으로 category_name으로 값을 콤마나 기타 다른 구분자를 이용해 값을 받은뒤에
해당 값을 구분자로 쪼개어 배열을 만드는 방법입니다
2. 동일한 이름을 사용해 연결
aaa.com?category_name=food&category_name=health&category_name=beauty
이렇게 같은 category_name을 반복적으로 열거합니다
대부분의 웹프레임워크에서는 동일한 이름으로 들어온 여러개의 값을 배열로 취급합니다
3. 이름 + 브라켓을 이용해 연결
aaa.com?category_name[]=food&category_name[]=health&category_name[]=beauty
많은 언어에서 [] 이 표시는 배열을 의미하는데요
이름뒤에 [] 표시를 더하여 값을 열거하여 category_name이라는 이름으로 배열을 받을수 있습니다
총 3가지의 방법을 설명해드렸는데요
일부 프레임워크에서는 2번 또는 3번 방법을 지원하지 않는 경우도 있을수 있습니다
하지만 대부분의 모던 프레임워크들에서는 이 방법을 지원하고 있습니다
nodejs의 express에서는 1,2,3번 모두 사용가능한데요
2,3번의 경우 원소가 하나밖에 없는 경우 string 타입으로, 원소가 2개 이상일때 배열 타입으로 전달됩니다
그래서 타입으로 구분할 필요가 있습니다
openapi 규격에서는 이를 지원할까요?
openapi에서는 1번의 경우 사용자가 하나의 input 안에 여러개의 입력값을 직접 구분자를 이용해 열거해야하는데
2, 3의 경우는 explode 속성을 이용하여 명확하게 표시가 가능합니다
https://petstore3.swagger.io/#/pet/findPetsByStatus
직접 개별 원소를 하나씩 입력할수 있습니다
'BACKEND' 카테고리의 다른 글
transactional outbox 패턴 (1) | 2024.12.17 |
---|---|
mongodb의 변경스트림(changeStream) (0) | 2024.12.13 |
cloudfront에 일괄 cache-control 적용하기 (0) | 2024.05.03 |
nestjs swagger가 아니라 redoc 적용하기 (0) | 2024.03.11 |
POST 메서드 apache bench(ab) 사용하기 (0) | 2024.02.07 |
- Total
- Today
- Yesterday
- 안드로이드
- 앱스토어
- 대학생
- 구글
- 공모전
- JavaScript
- 경진대회
- 웹표준
- 게임
- 소프트웨어
- 창업
- 트위터
- CSS
- 앱
- Apple
- 아이디어
- 벤처
- AWS
- 아이폰
- 모바일
- 네이버
- 자바스크립트
- 스마트폰
- android
- 어플리케이션
- 애플
- iPhone
- php
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |