Skip to content

dataswift/hat-client-scala-play

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

228 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Scala API wrappers for the HAT

This repository provides convenience wrappers around HAT HTTP APIs and contains the most up-to-date set of typesafe HAT Data Models and Play-JSON based serializers and deserializers for them.

It relies on Play-WS for an asynchronous HTTP client.

Usage

The library artifacts are hosted on AWS S3:

resolvers += "HAT Library Artifacts Releases" at "https://s3-eu-west-1.amazonaws.com/library-artifacts-releases.hubofallthings.com"
// Or for SNAPSHOTS:
// "HAT Library Artifacts Snapshots" at "https://s3-eu-west-1.amazonaws.com/library-artifacts-snapshots.hubofallthings.com"
libraryDependencies ++= "org.hatdex" %% "hat-client-scala-play" % X.Y.Z

To use the client, it is sufficient to create a new one with minimal configuration:

new HatClient(wsClient, hatAddress, schema)

Where:

  • wsClient is an instance of the WS Client, ideally dependency-injected in most cases - check Play documentation for details
  • hatAddress is the fully-qualified domain name of the HAT (e.g. example.hubofallthings.net)
  • schema is the schema of the address, can either be "http://" (only for development environments) or "https://" (the default if you omit the parameter)

The client is non-blocking and is built around standard Scala Futures. For example, to authenticate with a HAT and request data from it you would then run:

val hat = new HatClient(wsClient, hatAddress, schema)
for {
  accessToken <- hat.authenticateForToken(dataShopperUsername, dataShopperPassword)
  values <- hat.dataDebitValues(dataDebitId)
} yield values

About

HAT client library for Scala with Play framework

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 9

Languages