User Agent parser microservice with REST API intended to be run in Docker.
Udger-local-api is an application containing scalable pool of udger-parsers. Udger-local-api communicates via REST API, it can be easily embedded into Docker container and used as a microservice. Project provides basic Dockerfile based on Alpine Linux using highly efficient Meecrowave java EE microprofile.
Project consists of following parts:
- REST API description in apiary.io format.
- Java8 project in Maven
- Dockerfile based on AlpineLinux+java8 with Meecrowave microprofile.
- Simple build&run script. Build project, build Docker image and run Docker container.
- Testing scripts in Python.
- Hosted docker image on hub.docker.com
- Run
buildAndRun.shscript
Udger-local-api can be parameterized using following java properties:
-Dudger.poolsize=NwhereNis number of parsers in the pool. Default value is5-Dudger.cachesize=NwhereNis number of items in parser LRU cache. Default is10000-Dudger.clientkey=KEYwhereKEYis client key used for access dbfile fromhttp://data.udger.com/. Default value is empty.-Dudger.db=dbFilewheredbFileis path to database file. Default value is/udgerdb/udgerdb_v3.dat.-Dudger.autoupdate.time=4:42schedule daily auto update time to 4:42 (HH:mm format).
- replace
udgerdb_test_v3.datby full dbudgerdb_v3.datinDockerfile
parse/ua
wget http://localhost:8080/udger-local-api/parse/ua/Mozilla%2F5.0+%28Windows+NT+10.0%3B+WOW64%3B+rv%3A40.0%29+Gecko%2F20100101+Firefox%2F40.0
parse/ip
wget http://localhost:8080/udger-local-api/parse/ip/12.118.188.126
statistic
wget http://localhost:8080/udger-local-api/statistic
set/updatedata
curl -F 'file=@udgerdb_v3.dat' http://127.0.0.1:8080/udger-local-api/set/datafile