/AddressManager

A Vapor micro-service to store address information

Primary LanguageSwiftMIT LicenseMIT

Address Manager

Address Manager is a micro-service built with Vapor, a server-side Swift framework. It is designed for storing and validating international address data.

Setup

Start by forking and cloning the Address Manager repository. There are a few prerequisites you will need before you can run it.

MySQL

The AddressManager project uses a MySQL database to store the address information. You can change this to Postgres (or any other database) if you want, but we won't be covering that now.

If you haen't installed MySQL yet, do that now. If you are running macOS, Homebrew is a great way to do that:

brew install mysql
brew services start mysql
mysql -u root

In the MySQL command prompt, we will set the password for MySQL and create the databse that AddressManager connects to:

ALTER USER root IDENTIFIED BY 'password';
CREATE DATABASE address_manager;

SmartyStreet API

The default address validator and parser uses the SmartyStreet API to get location information based on the address passed to the service. If you want to use the validator/parser, you will need an API ID and token for the API. Otherwise you can implement your own validator.

Once you have the API keys, you can assign them to the SMARTY_STREET_API_TOKEN and SMARTY_STREET_API_ID environment variables. If you signed up for the internation address API, you can set the ADDRESS_SUPPORT_INTERNATIONAL variable to true to enable international validation and parsing.

Done

You're all setup! You should be able to run the service without issues now!

API Documentation

The REST API documentation has been generated from the Postman collection in the repository and has been published here.

License

The Address Manager service is under the MIT License agreement.