nl.vpro.api-client:api-client-parent

Clients for NPO API's

License

License

Categories

Categories

CLI User Interface
GroupId

GroupId

nl.vpro.api-client
ArtifactId

ArtifactId

api-client-parent
Last Version

Last Version

5.10.0
Release Date

Release Date

Type

Type

pom
Description

Description

Clients for NPO API's
Project Organization

Project Organization

NPO
Source Code Management

Source Code Management

https://github.com/npo-poms/api-clients

Download api-client-parent

How to add to project

<!-- https://jarcasting.com/artifacts/nl.vpro.api-client/api-client-parent/ -->
<dependency>
    <groupId>nl.vpro.api-client</groupId>
    <artifactId>api-client-parent</artifactId>
    <version>5.10.0</version>
    <type>pom</type>
</dependency>
// https://jarcasting.com/artifacts/nl.vpro.api-client/api-client-parent/
implementation 'nl.vpro.api-client:api-client-parent:5.10.0'
// https://jarcasting.com/artifacts/nl.vpro.api-client/api-client-parent/
implementation ("nl.vpro.api-client:api-client-parent:5.10.0")
'nl.vpro.api-client:api-client-parent:pom:5.10.0'
<dependency org="nl.vpro.api-client" name="api-client-parent" rev="5.10.0">
  <artifact name="api-client-parent" type="pom" />
</dependency>
@Grapes(
@Grab(group='nl.vpro.api-client', module='api-client-parent', version='5.10.0')
)
libraryDependencies += "nl.vpro.api-client" % "api-client-parent" % "5.10.0"
[nl.vpro.api-client/api-client-parent "5.10.0"]

Dependencies

test (1)

Group / Artifact Type Version
junit : junit jar 4.12

Project Modules

  • client-core
  • client-resteasy
  • client-utils
  • media-backend-rs-client

api-clients

Table of Contents

Build Status Maven Central codecov javadoc snapshots

Java API clients for the POMS Rest API’s (Frontend API, Backend API, Pages Publisher)

The clients are basicly generated using resteasy to proxy the actual service interface, and they are decorated with some interceptors and similar techniques to arrange the appropriate authentication, to let the generated client automaticly fill common parameters, and things like that.

We also add a common way to instantiate (using the builder pattern) and configure them.

It is split up in several modules. These are the important ones:

The clients can be configured by code and/or a configuration file in ${user.home}/conf/apiclient.properties.

    NpoApiClients clients = NpoApiClients.configured(nl.vpro.util.Env.TEST).build();
    NpoApiMediaUtil util = new NpoApiMediaUtil(clients);
    try(CloseableIterator<MediaObject> i = util.iterate(null, "vpro-predictions")) {
      i.forEachRemaining(mediaObject -> {
         log.info("{}", i.next());
      });
    }

There are also 'providers' available to configure them easily via spring XML’s or for example XML’s of magnolia CMS (which uses guice)

TODO

  • Document how to wire via spring xml

nl.vpro.api-client

NPO/POMS

Repositories related to POMS and the NPO Frontend API. Maintained by VPRO.

Versions

Version
5.10.0