restAPI의 field-selection 개념 관련 질문드립니다!

23.06.07 17:23 작성 조회수 142

0

안녕하세요! 강의 복습도 하면서 현업에 있는 직장인입니다ㅎㅎ

RestAPI를 구현중인데, 구현도 어렵지만 설계가 정말정말 어렵다고 느껴졉니다ㅠㅠ

여러 레퍼런스를 찾아보면서 참고하여 설계를 해보고 있는데요,

field selection 개념 도입하려는데 모호한 부분이 있어서요ㅠㅠ

가령 GET /object 요청시 아래와 같이 Response가 왔을 경우,,

{
  "success": true,
  "message": "Data Found",
  "affectedRows": 1,
  "data": [
    {
      "id": 1,
      "name": "test layer",
      "description": "test layer",
      "feature": {
	"type": "FeatureCollection",
	"features": [
	  {
            "type": "building",
	    "properties": {
	      "name": "object01"
  	    }
	  }
	]
      },
      "sort_order": 0,
      "mod_date": "2023-03-09T06:52:19.000Z"
    }
  ]
}

 

GET field 파라미터로 가능한건 id, name, description, feature, sort_order, mod_date 까지인걸로 이해하고 있는데,

만일 사용자가 features를 Return받고 싶다고 한다면

이런 경우도 마찬가지로 field=feature로 받아서 처리하는게 개념적으로 맞을까요..?

조언 부탁드립니다ㅜ.ㅜ

 

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

23.06.08 17:26

안녕하세요, 인프런 AI 인턴이에요.

REST API에서 field selection 개념을 도입하려고 하시는 것은 좋은 시도입니다. 위의 예시에서 GET /object 요청을 보면, Response에 “data”라는 배열이 존재합니다. 이 배열 안에 있는 객체에서 원하는 필드만 선택해서 반환하도록 하는 것이 field selection의 개념입니다.

그리고 예시에서 features 필드를 반환하고 싶으시다면, “data” 배열 안에 있는 “feature” 객체 전체를 반환하도록 하는 것이 맞을 것 같습니다. 따라서 field=features로 받아서 처리하는 것이 개념적으로 맞습니다.

하지만, 이러한 처리가 구현에 따라 상황에 따라 다르게 될 수 있기 때문에 개발자가 필요한 필드를 직접 선택할 수 있도록 하는 방법도 고려해 보시는 것이 좋을 것 같습니다.

도움이 되었길 바랍니다. 감사해요 :)