You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
API REST para consulta de CEPs brasileiros, baseada na base oficial dos Correios (DNE). Projeto open source, rápido, eficiente e fácil de usar.
7
+
API REST para consulta de CEPs brasileiros, baseada na base oficial dos Correios (DNE) com propósito de hospedar no seu servidor sem necessidade de acesso a terceiros.
8
+
9
+
Projeto open source, rápido, eficiente e fácil de usar.
8
10
9
11
## Sumário
10
12
-[Sumário](#sumário)
11
13
-[Como rodar](#como-rodar)
12
14
-[Build local](#build-local)
13
15
-[Configurações via ENV](#configurações-via-env)
14
16
-[Importação da base DNE](#importação-da-base-dne)
17
+
-[Modo seed: importação da base DNE](#modo-seed-importação-da-base-dne)
18
+
-[Estrutura de pastas esperada para a base DNE](#estrutura-de-pastas-esperada-para-a-base-dne)
15
19
-[Endpoints da API](#endpoints-da-api)
16
20
-[`GET /cep/:cep`](#get-cepcep)
17
21
-[`GET /healthcheck`](#get-healthcheck)
@@ -21,8 +25,6 @@ API REST para consulta de CEPs brasileiros, baseada na base oficial dos Correios
21
25
-[Configurações da API](#configurações-da-api)
22
26
-[Licença](#licença)
23
27
-[Contribua](#contribua)
24
-
-[Modo populate: importação da base DNE](#modo-populate-importação-da-base-dne)
25
-
-[Estrutura de pastas esperada para a base DNE](#estrutura-de-pastas-esperada-para-a-base-dne)
26
28
27
29
---
28
30
@@ -57,27 +59,30 @@ O binário será gerado em `./bin/brasilcep-webservice`.
57
59
58
60
## Configurações via ENV
59
61
60
-
Todas as configurações podem ser definidas via variáveis de ambiente. Use o formato abaixo:
Ou execute o modo cliente da aplicação executando o modo populate
98
-
```bash
99
-
MODE=populate go run main.go
100
-
```
102
+
Ou execute o modo seed
101
103
102
104
Arquivos necessários:
103
105
- LOG_LOCALIDADE.TXT
@@ -107,6 +109,71 @@ Arquivos necessários:
107
109
- LOG_UNID_OPER.TXT
108
110
- LOG_CPC.TXT
109
111
112
+
## Modo seed: importação da base DNE
113
+
114
+
O modo `seed` serve para importar a base oficial dos Correios (DNE) para o banco local BadgerDB. Basta definir a variável de ambiente `MODE=seed` e executar o projeto:
115
+
116
+
```sh
117
+
export MODE=seed
118
+
go run main.go
119
+
```
120
+
Ou via Makefile:
121
+
```sh
122
+
MODE=seed make run
123
+
```
124
+
125
+
O caminho da base DNE pode ser configurado via `DB_RAW_PATH` (por padrão, `./dne`).
126
+
127
+
O importador lê todos os arquivos TXT necessários e popula o banco local. Após o término, o modo pode ser alterado para `listen` para servir a API normalmente.
128
+
129
+
### Estrutura de pastas esperada para a base DNE
130
+
131
+
Coloque todos os arquivos TXT do DNE na pasta definida por `DB_RAW_PATH` (por padrão, `./dne`).
132
+
133
+
Exemplo:
134
+
```
135
+
./
136
+
├── main.go
137
+
├── dne/
138
+
│ ├── LOG_LOCALIDADE.TXT
139
+
│ ├── LOG_BAIRRO.TXT
140
+
│ ├── LOG_LOGRADOURO_AC.TXT
141
+
│ ├── LOG_LOGRADOURO_AL.TXT
142
+
│ ├── LOG_LOGRADOURO_AM.TXT
143
+
│ ├── LOG_LOGRADOURO_AP.TXT
144
+
│ ├── LOG_LOGRADOURO_BA.TXT
145
+
│ ├── LOG_LOGRADOURO_CE.TXT
146
+
│ ├── LOG_LOGRADOURO_DF.TXT
147
+
│ ├── LOG_LOGRADOURO_ES.TXT
148
+
│ ├── LOG_LOGRADOURO_GO.TXT
149
+
│ ├── LOG_LOGRADOURO_MA.TXT
150
+
│ ├── LOG_LOGRADOURO_MG.TXT
151
+
│ ├── LOG_LOGRADOURO_MS.TXT
152
+
│ ├── LOG_LOGRADOURO_MT.TXT
153
+
│ ├── LOG_LOGRADOURO_PA.TXT
154
+
│ ├── LOG_LOGRADOURO_PB.TXT
155
+
│ ├── LOG_LOGRADOURO_PE.TXT
156
+
│ ├── LOG_LOGRADOURO_PI.TXT
157
+
│ ├── LOG_LOGRADOURO_PR.TXT
158
+
│ ├── LOG_LOGRADOURO_RJ.TXT
159
+
│ ├── LOG_LOGRADOURO_RN.TXT
160
+
│ ├── LOG_LOGRADOURO_RO.TXT
161
+
│ ├── LOG_LOGRADOURO_RR.TXT
162
+
│ ├── LOG_LOGRADOURO_RS.TXT
163
+
│ ├── LOG_LOGRADOURO_SC.TXT
164
+
│ ├── LOG_LOGRADOURO_SE.TXT
165
+
│ ├── LOG_LOGRADOURO_SP.TXT
166
+
│ ├── LOG_LOGRADOURO_TO.TXT
167
+
│ ├── LOG_GRANDE_USUARIO.TXT
168
+
│ ├── LOG_UNID_OPER.TXT
169
+
│ ├── LOG_CPC.TXT
170
+
│ └── LOG_LOCALIDADE.TXT
171
+
```
172
+
173
+
**Atenção:** Todos os arquivos devem estar codificados em ISO-8859-1, conforme padrão dos Correios.
174
+
175
+
Após importar, rode o projeto normalmente em modo `listen` para servir a API.
176
+
110
177
## Endpoints da API
111
178
112
179
### `GET /cep/:cep`
@@ -203,69 +270,4 @@ Estatísticas dos CEPs por UF.
203
270
MIT
204
271
205
272
## Contribua
206
-
Pull requests são bem-vindos! Abra issues para sugestões ou problemas.
207
-
208
-
## Modo populate: importação da base DNE
209
-
210
-
O modo `populate` serve para importar a base oficial dos Correios (DNE) para o banco local BadgerDB. Basta definir a variável de ambiente `MODE=populate` e executar o projeto:
211
-
212
-
```sh
213
-
export MODE=populate
214
-
go run main.go
215
-
```
216
-
Ou via Makefile:
217
-
```sh
218
-
MODE=populate make run
219
-
```
220
-
221
-
O caminho da base DNE pode ser configurado via `DB_RAW_PATH` (por padrão, `./dne`).
222
-
223
-
O importador lê todos os arquivos TXT necessários e popula o banco local. Após o término, o modo pode ser alterado para `listen` para servir a API normalmente.
224
-
225
-
### Estrutura de pastas esperada para a base DNE
226
-
227
-
Coloque todos os arquivos TXT do DNE na pasta definida por `DB_RAW_PATH` (por padrão, `./dne`).
228
-
229
-
Exemplo:
230
-
```
231
-
./
232
-
├── main.go
233
-
├── dne/
234
-
│ ├── LOG_LOCALIDADE.TXT
235
-
│ ├── LOG_BAIRRO.TXT
236
-
│ ├── LOG_LOGRADOURO_AC.TXT
237
-
│ ├── LOG_LOGRADOURO_AL.TXT
238
-
│ ├── LOG_LOGRADOURO_AM.TXT
239
-
│ ├── LOG_LOGRADOURO_AP.TXT
240
-
│ ├── LOG_LOGRADOURO_BA.TXT
241
-
│ ├── LOG_LOGRADOURO_CE.TXT
242
-
│ ├── LOG_LOGRADOURO_DF.TXT
243
-
│ ├── LOG_LOGRADOURO_ES.TXT
244
-
│ ├── LOG_LOGRADOURO_GO.TXT
245
-
│ ├── LOG_LOGRADOURO_MA.TXT
246
-
│ ├── LOG_LOGRADOURO_MG.TXT
247
-
│ ├── LOG_LOGRADOURO_MS.TXT
248
-
│ ├── LOG_LOGRADOURO_MT.TXT
249
-
│ ├── LOG_LOGRADOURO_PA.TXT
250
-
│ ├── LOG_LOGRADOURO_PB.TXT
251
-
│ ├── LOG_LOGRADOURO_PE.TXT
252
-
│ ├── LOG_LOGRADOURO_PI.TXT
253
-
│ ├── LOG_LOGRADOURO_PR.TXT
254
-
│ ├── LOG_LOGRADOURO_RJ.TXT
255
-
│ ├── LOG_LOGRADOURO_RN.TXT
256
-
│ ├── LOG_LOGRADOURO_RO.TXT
257
-
│ ├── LOG_LOGRADOURO_RR.TXT
258
-
│ ├── LOG_LOGRADOURO_RS.TXT
259
-
│ ├── LOG_LOGRADOURO_SC.TXT
260
-
│ ├── LOG_LOGRADOURO_SE.TXT
261
-
│ ├── LOG_LOGRADOURO_SP.TXT
262
-
│ ├── LOG_LOGRADOURO_TO.TXT
263
-
│ ├── LOG_GRANDE_USUARIO.TXT
264
-
│ ├── LOG_UNID_OPER.TXT
265
-
│ ├── LOG_CPC.TXT
266
-
│ └── LOG_LOCALIDADE.TXT
267
-
```
268
-
269
-
**Atenção:** Todos os arquivos devem estar codificados em ISO-8859-1, conforme padrão dos Correios.
270
-
271
-
Após importar, rode o projeto normalmente em modo `listen` para servir a API.
273
+
Pull requests são bem-vindos! Abra issues para sugestões ou problemas.
0 commit comments