User guide¶
Creating a specialized service¶
Always create a specialized service rather than using useApiService
directly:
// services/tasks.js
import { useApiService } from 'vue-fastedgy'
export function useTasksService() {
return useApiService('tasks')
}
Using in a component¶
import { useTasksService } from '@/services/tasks'
export default {
setup() {
const tasksService = useTasksService()
const loadTasks = async () => {
const response = await tasksService.list({
page: 1,
size: 20,
orderBy: ['-created_at']
})
return response.data
}
return { loadTasks }
}
}
Available operations¶
List with options¶
await tasksService.list({
page: 1,
size: 20,
fields: ['id', 'title', 'completed'],
orderBy: ['-created_at', 'title'],
filter: { completed: false }
})
Get by ID¶
Create¶
Update¶
Delete¶
Export¶
Admin service¶
For administrative operations:
// services/admin-users.js
export function useAdminUsersService() {
return useApiService('users', { isAdmin: true })
}
Extending a service¶
The advantage of specialized services is being able to add custom methods:
```javascript import { useApiService } from 'vue-fastedgy'
export function useTasksService() { const baseService = useApiService('tasks')
return {
...baseService,
// Custom method
markCompleted: async (id) => {
return baseService.update(id, {
completed: true,
completed_at: new Date().toISOString()
})
},
// Method with business logic
getActiveTasks: async () => {
return baseService.list({
filter: { completed: false },
orderBy: ['-priority', 'created_at']
})
}
}
}