Pular para o conteúdo principal

CityService

Visao Geral

O CityService fornece operacoes para buscar dados de cidades no backend de forma paginada.

Localizacao: services/city/city.service.ts

Endpoints

MetodoEndpointDescricao
GET/cidadesLista cidades com paginacao

Metodos

fetchCitiesRemote(params)

Busca cidades de forma paginada, com opcao de filtros.

Parametros

NomeTipoObrigatorio
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

StatusDescricao
4xx/5xxLanca 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

CenarioResultado esperado
fetchCitiesRemote status 200Retorna citiesResponseMock.content
fetchCitiesRemote status 400Lanca 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";