CityService
Visao Geral
O CityService fornece operacoes para buscar dados de cidades no backend de forma paginada.
Localizacao: services/city/city.service.ts
Endpoints
| Metodo | Endpoint | Descricao |
|---|---|---|
| GET | /cidades | Lista cidades com paginacao |
Metodos
fetchCitiesRemote(params)
Busca cidades de forma paginada, com opcao de filtros.
Parametros
| Nome | Tipo | Obrigatorio |
|---|---|---|
params | { page?: number; size?: number; codMunFis?: string; uf?: string; estado?: string; nomeCidade?: string } | Nao |
Retorno: Promise<City[]>
Exemplo
const cities = await cityService.fetchCitiesRemote({ page: 0, size: 10 });
console.log(cities[0].nomeCidade); // "Belo Horizonte"
console.log(cities[0].uf); // "MG"
Erros
| Status | Descricao |
|---|---|
| 4xx/5xx | Lanca Error: CityService.fetchCitiesRemote failed: {status} |
Estruturas de Dados
City
interface City {
id: string;
codMunFis: string;
uf: string;
estado: string;
nomeCidade: string;
}
PageResponse<T>
interface PageResponse<T> {
content: T[];
page?: number;
size?: number;
totalElements?: number;
}
Casos de Uso
- Buscar cidades para exibir em formularios de cadastro
- Sincronizar dados de cidades para uso offline
Testes
Localizacao: services/city/city.service.test.ts
Principais cenarios
| Cenario | Resultado esperado |
|---|---|
fetchCitiesRemote status 200 | Retorna citiesResponseMock.content |
fetchCitiesRemote status 400 | Lanca CityService.fetchCitiesRemote failed |
Mocks
Localizacao: __mocks__/city.mock.ts
citiesResponseMock- resposta paginada mockada com cidades (Belo Horizonte, Sao Paulo, Rio de Janeiro, etc.)
Instancia
Localizacao: services/city/city.service.instance.ts
import { cityService } from "@/services/city/city.service.instance";