2017-09-12 1 views
0

나는 redux-thunk 미들웨어를 사용하여 Redux에서 API를 소비하는 방법을 살펴 보았습니다. Redux에서 API 호출의 흐름을 이해하고 API 호출의 상태 (예 : 가져 오기, 성공 또는 실패)를 반영하도록 내 상태 조각을 구조화하는 방법을 이해합니다. 제가 지금 알고 싶은 것은 : 상용구 코드를 피하기 위해 매우 큰 어플리케이션을 어떻게 구조화할까요? 나는이 문서를 읽고 수집 한 바로는, 하나의 API 호출이 필요합니다REST API를 사용하는 Reux Redux에서 큰 응용 프로그램을 구성하는 방법은 무엇입니까?

  1. 액션 제작자는 API_CALL_FETCHING 행동과 API_CALL_SUCCESS 행동 또는 API_CALL_FAIL 행동 조치
  2. (A)의 각을 처리 할 수 ​​
  3. 감속기 코드를 파견 API 호출의 상태 반영을위한 상태의 슬라이스

기본 CRUD 작업을 허용하는 리소스가 있다고 가정하면 순전히 12 가지 작업을 작성해야합니다. 작업 * 3 호출 별 API 상태 작업). 이제 CRUD 작업을 허용하는 많은 리소스가 있다고 상상해보십시오.

많은 API 호출을 수행하는 데 필요한 코드를 압축하는 데있어 웅변적인 방법이 있습니까? 아니면 대규모 응용 프로그램을 사용하는 데 단순히이 영역에서 많은 반복을 요구합니까?

감사합니다.

답변

1

예. API 호출 프로세스를 추상화하는 다양한 방법과이를 지원하는 수십 개의 기존 라이브러리가 있습니다.

일반적으로 매개 변수 집합 (API 끝점, 데이터 설명 등)을 취하는 "팩토리 함수"를 작성하고 API 호출 및 처리를 실제로 수행하기위한 동작, 축소 기 및 기타 논리 집합을 반환 할 수 있습니다 자료.

기존 예의 경우 Redux addons catalogAction/Reducer Generators#Network RequestsEntity/Collection Management 섹션을 참조하십시오. Redux 위에는 좀 더 의도적 인 추상화 레이어가 있습니다 (예 : redux-tilesKea).

+1

감사! 이것 주위에 도구가있는 것 같아요. 좋은 마일리지를 얻은 도구에는 어떤 것들이 있습니까? –

+0

나는 실제로 그 범주에서 도구를 사용하지 않았다 :) 내 애플 리케이션의 요구는 매우 구체적이다. 저는 저장소 내부의 관계형 데이터를 관리하기위한 Redux-ORM에 대한 열렬한 팬입니다. ("Practical Redux"튜토리얼 시리즈 (http://blog.isquaredsoftware.com/series/practical-redux)),하지만 그 이상으로 사용할 필요는 없습니다. 분명히 다른 사람들은 나보다 다른 유스 케이스를 가지고 있기 때문에이 모든 부가 기능이 존재합니다 : – markerikson

+0

Redux-ORM을 살펴 보겠습니다. 나는 당신의 블로그 포스트를보기 시작했고, 그들은 훌륭한 튜토리얼처럼 보인다! Redux 실세계 예제를 통해 재사용 가능한 미들웨어를 구조화하여 API 요청을 처리하는 방법에 대해 잘 알고 있습니다. 하지만 안타깝게도 데이터를 가져 와서 상태 트리에서 정규화하는 것 이상으로 나아 가지 않습니다. Redux ORM은 게시, 퍼팅 및 삭제에 도움이 될 수있는 것처럼 보입니다. –