https://github.com/antoninobonanno/api-comuni-italiani
Unofficial API service, which returns information on Italian areas, regions, provinces and cities. (Source of data: ISTAT - Automatic database update)
https://github.com/antoninobonanno/api-comuni-italiani
api-rest comuni-italiani docker express nodejs nodejs-server-api prisma typescript
Last synced: about 2 months ago
JSON representation
Unofficial API service, which returns information on Italian areas, regions, provinces and cities. (Source of data: ISTAT - Automatic database update)
- Host: GitHub
- URL: https://github.com/antoninobonanno/api-comuni-italiani
- Owner: AntoninoBonanno
- License: mit
- Created: 2021-11-07T18:43:51.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-10-10T04:20:25.000Z (over 1 year ago)
- Last Synced: 2025-02-26T13:47:19.045Z (over 1 year ago)
- Topics: api-rest, comuni-italiani, docker, express, nodejs, nodejs-server-api, prisma, typescript
- Language: TypeScript
- Homepage:
- Size: 931 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# API Comuni italiani
[](https://github.com/AntoninoBonanno/api-comuni-italiani/actions/workflows/docker-hub.yml)
[](https://github.com/AntoninoBonanno/api-comuni-italiani/actions/workflows/codeql-analysis.yml)
[](https://github.com/AntoninoBonanno/api-comuni-italiani/releases)
[](https://hub.docker.com/r/antoninobonanno/api-comuni-italiani "Click to view the image on Docker Hub")
[](https://hub.docker.com/r/antoninobonanno/api-comuni-italiani 'DockerHub')
[](https://hub.docker.com/r/antoninobonanno/api-comuni-italiani 'DockerHub')
Unofficial API service, which returns information on Italian **areas**, **regions**, **provinces** and **cities**.
Service realized with Node.js server based on the Express framework and on the MySQL database.
- Source of data: [ISTAT](https://www.istat.it/it/archivio/6789)
- Project structure based
on [Express Startup Project](https://github.com/AntoninoBonanno/express-startup-project#express-startup-project)
### Features
- Automatic database update (The [ISTAT Permalink](https://www.istat.it/storage/codici-unita-amministrative/Elenco-comuni-italiani.xls) is checked
every 5 months - configurable)
- API divided by [**areas**](/docs/api.md#areas), [**regions**](/docs/api.md#regions), [**provinces**](/docs/api.md#provinces) and [**cities**](/docs/api.md#cities) with the possibility of filtering the data. (See [documentation](/docs/api.md))
## Startup instructions
### From Docker (production)
Starting an "API Comuni italiani" instance is simple:
```
docker run -p 8000:8000 -e DATABASE_URL="mysql://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_DATABASE}" --name api-comuni-italiani -d antoninobonanno/api-comuni-italiani:latest
```
Example: `DATABASE_URL=mysql://root:@host.docker.internal:3306/comuni-italiani`
NOTE: use `host.docker.internal` instead of `localhost` as `DB_HOST` if you have a local database (not in a docker container)
#### use docker-compose
You can see the example present in [docker/docker-compose.yml](docker/docker-compose.yml) and run the command:
```
docker-compose -f docker/docker-compose.yml -p api-comuni-italiani up -d
```
**Environment Variables**
| Parameter | Type | Description |
| :--- | :--- | :--- |
| `DATABASE_URL` | `connection string` | **Required**. The database connection string: `mysql://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_DATABASE}` |
| `APP_NAME` | `string` | **Optional**. The name of app: default `API Comuni Italiani` |
| `APP_ENV` | `development, production` | **Optional**. The environment mode: default `production` |
| `APP_PORT` | `integer` | **Optional**. The local (internal) port where the server is exposed: default `8000` |
| `ISTAT_SCAN_MONTHLY_PERIOD` | `integer` | **Optional**. How many months you want to scan on the ISTAT site, started every first day of month at 10:00: default `5` |
### From Clone (development)
0. Clone the repository
1. Copy and rename `.env.example` file to `.env` and edit settings
2. Run `npm install` command to install dependencies
3. Run `npx prisma migrate dev` command to initialize the database or `npx prisma generate` command if the database
already exists
4. Run `npm start` or `npm run dev` command to run local server (it restarts each time the code is changed)
## Support me
[](https://ko-fi.com/C0C46QJ0M)
## Getting Involved
Want to help out? Found a bug? Missing a feature? Post an issue on
our [issue tracker](https://github.com/AntoninoBonanno/api-comuni-italiani/issues).
I welcome contributions no matter how small or big!