proshin-roman / finapi-java-client

True-OOP Java client for API provided by https://finapi.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

⚠️ Development and maintenance of this project is over. Thank you all who were using it and even contributing into it!

Feel free to fork it and continue the project under your name. If you decide to do so - write me an email and I will put a link to your repo here!


EO principles respected here We recommend IntelliJ IDEA

winner

License

Releases

Maven Central FOSSA Status

Builds

Build Status Build status

Code quality

codecov Coverage Status codebeat badge SonarCloud CodeFactor Hits-of-Code

Puzzle Driven Development

PDD status

Community

Join the chat at https://gitter.im/finapi-java-client/Lobby

finapi-java-client is a true-OOP Java client for API provided by finAPI.

Principles

The project is following the next principles (it is a subset of those ones):

  • No null
  • No getters and setters
  • No mutable objects
  • No static methods, not even private ones
  • No instanceof, type casting or reflection
  • No implementation inheritance

All badges are through iwillfailyou

nullfree status staticfree status allfinal status allpublic status

How to use

Just add the following lines into your pom.xml

<dependency>
  <groupId>org.proshin</groupId>
  <artifactId>finapi-java-client</artifactId>
  <version>${version}</version>
</dependency>

You can find the latest version on Releases page.

What about logging?

The library uses Logback for logging. As well you can enable logging of the Apache HTTP client library by specifying command line parameters (read this for more details):

-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
-Dorg.apache.commons.logging.simplelog.showdatetime=true
-Dorg.apache.commons.logging.simplelog.log.org.apache.http=DEBUG
-Dorg.apache.commons.logging.simplelog.log.org.apache.http.wire=ERROR

How to contribute

Just fork the repo and send a pull request.

Make sure your branch builds without any warnings/issues:

mvn clean install

How to release

Push a new annotated tag. Here is an example of the command:

git tag -a v0.1.107 -m "Release v0.1.107" 53901d

Versioning is done using jgitver tool, so it will use the new tag as a base of the version.

License

Copyright 2018-2019 Roman Proshin

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

FOSSA Status

About

True-OOP Java client for API provided by https://finapi.io

License:Apache License 2.0


Languages

Language:Java 99.8%Language:Shell 0.2%