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ườngfetchBaseQuery({ 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:
getUsers→useGetUsersQuery(),addUser→useAddUserMutation(). - Cache invalidation dùng tag system:
tagTypes: ['User'], queryprovidesTags: ['User'], mutationinvalidatesTags: ['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.