Cách định nghĩa API với createApi trong RTK Query như thế nào?

createApi là core API của RTK Query, định nghĩa toàn bộ endpoints cho một base URL.

  • Cấu hình baseQuery (thường fetchBaseQuery({ baseUrl: '/api' })) xác định cách gọi API, có thể custom để thêm auth headers hay handle token refresh.
  • Mỗi endpoint là query (GET) hoặc mutation (POST/PUT/DELETE), tự động tạo hooks: getUsersuseGetUsersQuery(), addUseruseAddUserMutation().
  • Cache invalidation dùng tag system: tagTypes: ['User'], query providesTags: ['User'], mutation invalidatesTags: ['User'] — khi add user xong, danh sách users tự refetch.

Ví dụ: endpoints: (builder) => ({ getUsers: builder.query({ query: () => '/users', providesTags: ['User'] }), addUser: builder.mutation({ query: (body) => ({ url: '/users', method: 'POST', body }), invalidatesTags: ['User'] }) }).

Pitfall: chỉ nên có MỘT createApi per base URL, dùng injectEndpoints để code-split endpoints ra nhiều files.

Xem toàn bộ State Management cùng filter theo level & chủ đề con.

Mở danh sách State Management