rest api 설계(?) 질문입니다..

여기 게시판에 질문을 하는게 맞는지 모르겠지만,., 질문해볼게요

api질문

위 그림에서 rest api 가 존재하고, 여러 회사들이 api 요청을 합니다.

a , b , c 회사들은 각각 json 형식의 데이터를 post 로 api 서버에 보내고,
api 서버에서는 받은 데이터를 확인 후 가공하여 결과 값을 text 파일로 던져줍니다.

이런 상황에서 각 회사들이 요청한 json 형식의 데이터를 서버에 저장 해야한다면, 어떤식으로 저장해야할까요?

제가 생각해본건 각 회사들에게 특정 코드를 주어주고 그 코드 값을 데이터와 함께 던져주면 저장하는걸 생각해봤는데요, 예를 들어 A 회사의 코드는 111, B 회사의 코드는 112, C 회사의 코드는 113 이라고 하면 post 요청 할 때 https://api.test.com/test/111 , https://api.test.com/test/112, https://api.test.com/test/113 이런식으로 하고… (회사코드 + 현재날짜) 로 된 .txt 파일을 만들어서 저장하는 걸 생각해봤는데요, 이런식으로 하면 될까요?

2개의 좋아요

질문글에 남겨 주신 각 회사의 코드를

고유 비밀 인증키 라고 생각하고

http(s) 요청시 헤더에 Bearer Authentication 로 비밀키를 같이 요청 포함해서 요청하고
uri에는 노출하지 않는 것이 좋은 것 같습니다.


그래서 이참에 생각하시는 Rest api를
RestFul api 에 맞게 계층적 구조 uri로 의미 있는 주소 형식으로 제공해 주는 것이 좋아 보입니다.

추가로,

txt 파일로 데이터를 관리 한다고 하셨는데 어떤 성격의 데이터인지는 모르겠지만.,

만약 해당 데이터에 통계를 낸다던가 내용을 검색해야 한다던가 하는 상황 등을 넓게 생각해서
DB로 데이터를 관리 하는 것이 효율적일 수 도 있습니다

3개의 좋아요

답변 감사합니다!!

2개의 좋아요

안녕하세요.
rest api에 대해서는 답변이 되신 것 같습니다.

DB에 저장할 때는 정규화할 정도의 구성이면 RDB 테이블에 잘 저장하면 될 것 같고
혹시 각 회사마다 보내는 내용이 제각각이라서 JSON 데이터 타입을 저장하는 걸 생각해 볼 수 있습니다.

참고하세요~
감사합니다.

1개의 좋아요

좀 많이 이상한데요 post로 전달받은 데이타는 json 프로토콜이긴 하나
api 입장에서는 object 입니다. 사전에 구독하는 회사에서 보내주는 data type이
json 이라고 그걸 그대로 저장하는것은 일반적이지 않습니다. parsing 을해서
db 스키마로 저장을 해야지 그리고 database에 저장 못하는 무슨 특별한 이유가
있을까요? api로 받은 json을 raw 원문 그대로 text로 저장하는것은
rest api 가 아니라 거의 ftp 이고 장점을 살리지는 못하는 방법 같습니다.
목적이 보내주는 json을 저장하는것이 목적이라면 type 지정도 없이 string 타입으로
받으신다음 guid 값으로 난수 생성해서 파일명을 생성한다음 write 하셔서 서버에 저장하시면
될것 같긴 하지만 이건 관리하시는데 상당히 힘드실것 같습니다.

1개의 좋아요