나는 데이터베이스 계층이 "다음"에 대한 부울 열을 갖는 것보다 약간 더 복잡한 방법으로 구현되어야한다고 생각합니다.
사용자가 3 명이라면 사용자 중 한 명이 "following": true
인 것은 무엇을 의미합니까? 그 사용자는 무엇인가를 팔로우합니까? 이것만으로 사용자가 다른 모든 사용자를 따르고있는 것은 아닙니다. 맞습니까?
데이터베이스 계층은 아마도 사용자와 추종자의 두 가지 개념으로 구성됩니다. 사용자는 사용자에 대한 정보를 포함하고 다음은 사용자가 서로 따라야하는 것을 지정합니다.
[
{"username": "jake"},
{"username": "jane"}
]
우리가 제인은 제이크 다음과 같은 것을 말하고 싶은,하지만 다른 방법으로 주위 :
우리는 두 명의 사용자를 가지고 있다고 말한다.
그런 다음 우리는 그 개념을 표현할 무언가가 필요합니다. 다음과 같이 호출 해 봅시다 :
{"follower": "jane", "followee": "jake"}
API가 다음을 만들거나 삭제하는 것에 대해 이야기 할 때, 이것은 아마도 그들이 생성하는 것으로 상상할 수 있습니다. 그래서 PUT 대신 POST/DELETE를 사용합니다. 사용자 개체를 수정하지 않고 다음을 나타내는 다른 개체를 만듭니다.
당신이 다른 사용자의 하나로서 특정 사용자에 대한 정보, 를 요청할 때 사용자가 특정 사용자에게 다음과 당신 같은 경우, 당신이 알고 싶어하기 때문에 그들의 JSON의 API 응답에 "following": true/false
부분을 가지고있는 이유는 .
제인은 GET /api/profiles/jake
에서 제이크에 대한 정보를 요청 할 때, 위의 예를 주어, 그녀는 다음과 같이받을 것이다 : 제이크에 대한 프로파일 정보를 요청 할 때
{
"profile": {
"username": "jake",
"bio": "...",
"image": "...",
"following": true
}
}
을,
{
"profile": {
"username": "jane",
"bio": "...",
"image": "...",
"following": false
}
}
그래서 정보가 API 응답이 실제로이 특정 사용자에 대한 데이터베이스에 저장되는, 그것은 또한 contai 아니므로 목록 : 제인, 그는 대신이 응답을 얻을 것 누가 질문을했는지에 따라 계산 된 정보.
데이터베이스 계층은 API의 디자인 고려 사항과 관련이 없어야합니다. POST/DELETE 대 PUT의 의미는 API 계층에만 관련이 있습니다. –
동의합니다. 나는 그것을 단지 예로서 사용하고 있었고 아마 어색한 것이었다. 이 경우 "다음"은 "사용자 프로필"과는 별도의 개념이며, 물론 링크 된 예제가 우리에게도 알려주려고합니다. 질문은 부울 값을 토글하지 않는지 묻습니다. 그 이유는 나에게 그들이 요청이 만들어진 후 전후에 프로필 응답이 왜 다르게 보일 것인지보다는 오히려 생성/삭제 된 이유에 대해 설명하는 한 가지 이유를 설명하려고했습니다. – Frost