programing

Resangular의 .all()과 .one()의 차이점은 무엇입니까?

magicmemo 2023. 3. 7. 21:14
반응형

Resangular의 .all()과 .one()의 차이점은 무엇입니까?

이 둘의 차이점은 무엇입니까?둘 다 /users에게 GET을 생성하여 취득하는 것 같습니다.

Restangular.one('users').getList().then(function(users) {
    // do something with users
});

Restangular.all('users').getList().then(function(users) {
    // do something with users
});

1개('users', 123)를 하면 /users/123을 취득할 수 있다는 것은 알고 있습니다만, 두 번째 인수가 없으면 같은 것 같습니다.왜 이 경우 한 가지 방법만 가지고 있지 않은가?

one()함수에는 ID를 받아들이는 두 번째 인수가 있습니다. .one('users', 1).

  • one('users', 1).get()로 변환됩니다./users/1
  • all('users').getList()로 변환됩니다./users

와는 달리all(),one()에는 일반적으로 사용되지 않습니다..getList()의론의 여지없이하지만, 만약 당신이 전화한다면.one('users', 1).getList('emails')또는.one('users', 1).all('emails').getList()그 후 GET 요구를 합니다./users/1/emails.

내 추측으로는 그들은 당신이 하려는 일에 대한 의도를 표현하기 위해 그곳에 있는 것 같다.전체 리소스에 액세스할 것인지, 특정 리소스에 액세스할 것인지를 나타내는 URL을 작성하는 방법으로 이해하겠습니다.

최종적으로는 GET 요구를 빌드하여 실행하지만 GET을 실행하고 데이터를 취득하기 때문에 이러한 방법으로 데이터를 사용해야 한다는 의미는 아닙니다.

https://github.com/mgonto/restangular/issues/450에서 발췌한 예

getList는 양방향으로 호출할 수 있습니다.요소 1에서 호출된 경우 컬렉션에 도달하려면 하위 요소가 필요합니다.그렇지 않으면 컬렉션을 가져옵니다.다음과 같습니다.

Restangular.one('places', 123).getList('venues')        // GET /places/123/venues
Restangular.one('places', 123).all('venues').getList()  // GET /places/123/venues

보시다시피 '장소', '123'이라고 부르는 게 더 표현력이 좋아요.all(모두) 123번지에 있는 장소만 원하는 것을 이해하십시오.

다음 URL이 도움이 될 수 있습니다.

https://github.com/mgonto/restangular/issues/450

나는 최근에 이 방법들의 차이를 발견했다.네, 둘 다 같은 get 요청을 하지만 결과가 나와 놀랄 수도 있습니다.

어레이를 엄밀하게 반환하지 않고 다음과 같은 API 메서드/사용자가 있다고 가정합니다.

{
   "result": [{...}]
}

따라서 어레이는 응답 객체의 일부 프로포트의 값으로 반환됩니다.이 경우 get()과 getList()는 다르게 동작합니다.이 코드는 올바르게 동작합니다.

Restangular.get('users').then(function (response) {...});

응답 핸들러는 응답이 수신된 후에 호출됩니다.하지만 이 코드는 작동하지 않는 것 같습니다.

Restangular.all('users').getList().then(function (response) {...});

응답 핸들러는 상태 코드 200으로 요구가 완료되어 응답이 비어 있지 않아도 호출되지 않습니다.브라우저 콘솔에 오류가 표시되지 않고 네트워크 모니터에 성공한 요청이 표시됩니다.

저는 이것을 Resangular 1.5.2로 테스트했기 때문에 아마 새로운 버전에서는 이미 수정되어 있을 것입니다.

언급URL : https://stackoverflow.com/questions/22531428/what-is-the-difference-between-all-and-one-in-restangular

반응형