Skip to content

Repository files navigation

Java Wrapper for Trello API

Overview

This project is a Java Wrapper for the Trello REST API. It provides a fluent interface for requesting the API.

Usage

The library can be used with Java 11 or newer.

Available in Maven Central. Gradle dependency declaration:

dependencies {
compile 'com.taskadapter:trello-java-wrapper:<current-version>'
}

The wrapper can make use of one of the following HTTP clients:

  • JDKTrelloHttpClient
    • pure JDK http client, no other dependencies
  • OKHttp
    • compile 'com.squareup.okhttp3:okhttp:VERSION'
  • Spring Web
    • compile 'org.springframework:spring-web:VERSION'
  • Apache Http Components HttpClient
    • compile 'org.apache.httpcomponents:httpclient:VERSION'
  • Async Http Client
    • compile 'org.asynchttpclient:async-http-client:VERSION'
  • Ning async-http-client
    • The predecessor to the modern Async Http Client above
    • compile 'com.ning:async-http-client:VERSION'

Choose one if you don't already use one of those. You will need to instantiate the corresponding TrelloHttpClient implementation and pass it to the TrelloImpl constructor (see Init section below).

Optional dependency in case you want to attach files to cards:
compile 'org.apache.httpcomponents:httpmime'

Failure to do so will most probably cause a NoClassDefFoundError.

Init

First, create an instance of TrelloImpl. This examples uses an http client based on Apache Http library.

TrellotrelloApi = newTrelloImpl(trelloKey, trelloAccessToken, newApacheHttpClient());
  • trelloKey : The key of your application
  • trelloAccessToken : the oauth token of the authenticated user on Trello
  • http client : one of supported http client implementations. See com.julienvey.trello.impl.http package.

Usage

Sample call:

Boardboard = trelloApi.getBoard(trelloBoardForAddingCardsId);

The wrapper provides a fluent interface. On each "Trello" Object, you have access to methods to fetch other object

Boardboard = trelloApi.getBoard(trelloBoardForAddingCardsId);
List<TList> lists = board.fetchLists();

which can also be written like this

List<TList> lists = trelloApi.getBoard(trelloBoardForAddingCardsId).fetchLists();

Contribute

Each pull request should respect current code conventions and provide tests for the newly implemented features. The new test code is implemented using Scala. The prod code is only Java - to avoid adding extra Scala dependency to the lib without providing much value (at the moment).

Implementation Status

MethodImplUnit TestInt Test
GET /1/actions/[idAction]YesYesYes
GET /1/actions/[idAction]/[field]
GET /1/actions/[idAction]/boardYesYesYes
GET /1/actions/[idAction]/board/[field]
GET /1/actions/[idAction]/cardYesYesYes
GET /1/actions/[idAction]/card/[field]
GET /1/actions/[idAction]/entitiesYesYesYes
GET /1/actions/[idAction]/listYesYesYes
GET /1/actions/[idAction]/list/[field]
GET /1/actions/[idAction]/memberYesYesYes
GET /1/actions/[idAction]/member/[field]
GET /1/actions/[idAction]/memberCreatorYesYesYes
GET /1/actions/[idAction]/memberCreator/[field]
GET /1/actions/[idAction]/organizationYesYesYes
GET /1/actions/[idAction]/organization/[field]
PUT /1/actions/[idAction]
PUT /1/actions/[idAction]/text
DELETE /1/actions/[idAction]
GET /1/boards/[board_id]YesYesYes
GET /1/boards/[board_id]/[field]
GET /1/boards/[board_id]/actionsYesYesYes
GET /1/boards/[board_id]/cardsYesYesYes
GET /1/boards/[board_id]/cards/[filter]
GET /1/boards/[board_id]/cards/[idCard]YesYesYes
GET /1/boards/[board_id]/checklistsYesYesYes
GET /1/boards/[board_id]/labelsYesYesYes
GET /1/boards/[board_id]/listsYesYesYes
GET /1/boards/[board_id]/lists/[filter]
GET /1/boards/[board_id]/membersYesYes
GET /1/boards/[board_id]/members/[filter]
GET /1/boards/[board_id]/members/[idMember]/cardsYesYesYes
GET /1/boards/[board_id]/memberships
GET /1/boards/[board_id]/memberships/[idMembership]
GET /1/boards/[board_id]/myPrefsYesYesYes
GET /1/boards/[board_id]/organizationYesYesYes
GET /1/boards/[board_id]/organization/[field]
PUT /1/boards/[board_id]
PUT /1/boards/[board_id]/closed
PUT /1/boards/[board_id]/desc
PUT /1/boards/[board_id]/idOrganization
PUT /1/boards/[board_id]/labelNames/blue
PUT /1/boards/[board_id]/labelNames/green
PUT /1/boards/[board_id]/labelNames/orange
PUT /1/boards/[board_id]/labelNames/purple
PUT /1/boards/[board_id]/labelNames/red
PUT /1/boards/[board_id]/labelNames/yellow
PUT /1/boards/[board_id]/membersYesNoYes
PUT /1/boards/[board_id]/members/[idMember]YesNoYes
PUT /1/boards/[board_id]/memberships/[idMembership]
PUT /1/boards/[board_id]/myPrefs/emailPosition
PUT /1/boards/[board_id]/myPrefs/idEmailList
PUT /1/boards/[board_id]/myPrefs/showListGuide
PUT /1/boards/[board_id]/myPrefs/showSidebar
PUT /1/boards/[board_id]/myPrefs/showSidebarActivity
PUT /1/boards/[board_id]/myPrefs/showSidebarBoardActions
PUT /1/boards/[board_id]/myPrefs/showSidebarMembers
PUT /1/boards/[board_id]/name
PUT /1/boards/[board_id]/prefs/calendarFeedEnabled
PUT /1/boards/[board_id]/prefs/cardAging
PUT /1/boards/[board_id]/prefs/cardCovers
PUT /1/boards/[board_id]/prefs/comments
PUT /1/boards/[board_id]/prefs/invitations
PUT /1/boards/[board_id]/prefs/permissionLevel
PUT /1/boards/[board_id]/prefs/selfJoin
PUT /1/boards/[board_id]/prefs/voting
PUT /1/boards/[board_id]/subscribed
POST /1/boards
POST /1/boards/[board_id]/calendarKey/generate
POST /1/boards/[board_id]/checklists
POST /1/boards/[board_id]/emailKey/generate
POST /1/boards/[board_id]/lists
POST /1/boards/[board_id]/markAsViewed
POST /1/boards/[board_id]/powerUps
DELETE /1/boards/[board_id]/members/[idMember]YesNoYes
DELETE /1/boards/[board_id]/powerUps/[powerUp]
GET /1/cards/[card id or shortlink]YesYesYes
GET /1/cards/[card id or shortlink]/[field]
GET /1/cards/[card id or shortlink]/actionsYesYesYes
GET /1/cards/[card id or shortlink]/attachmentsYesYesYes
GET /1/cards/[card id or shortlink]/attachments/[idAttachment]YesYesYes
GET /1/cards/[card id or shortlink]/boardYes
GET /1/cards/[card id or shortlink]/board/[field]
GET /1/cards/[card id or shortlink]/checkItemStates
GET /1/cards/[card id or shortlink]/checklistsYesYesYes
GET /1/cards/[card id or shortlink]/list
GET /1/cards/[card id or shortlink]/list/[field]
GET /1/cards/[card id or shortlink]/members
GET /1/cards/[card id or shortlink]/membersVoted
PUT /1/cards/[card id or shortlink]Yes
PUT /1/cards/[card id or shortlink]/actions/[idAction]/commentsYesNoYes
PUT /1/cards/[card id or shortlink]/checklist/[idChecklist]/checkItem/[idCheckItem]/name
PUT /1/cards/[card id or shortlink]/checklist/[idChecklist]/checkItem/[idCheckItem]/pos
PUT /1/cards/[card id or shortlink]/checklist/[idChecklist]/checkItem/[idCheckItem]/state
PUT /1/cards/[card id or shortlink]/checklist/[idChecklistCurrent]/checkItem/[idCheckItem]
PUT /1/cards/[card id or shortlink]/closed
PUT /1/cards/[card id or shortlink]/desc
PUT /1/cards/[card id or shortlink]/due
PUT /1/cards/[card id or shortlink]/idAttachmentCover
PUT /1/cards/[card id or shortlink]/idBoard
PUT /1/cards/[card id or shortlink]/idList
PUT /1/cards/[card id or shortlink]/idMembers
PUT /1/cards/[card id or shortlink]/labels
PUT /1/cards/[card id or shortlink]/name
PUT /1/cards/[card id or shortlink]/pos
PUT /1/cards/[card id or shortlink]/subscribed
PUT /1/cards/[card id or shortlink]/warnWhenUpcoming
POST /1/cardsYes
POST /1/cards/[card id or shortlink]/actions/commentsYesNoYes
POST /1/cards/[card id or shortlink]/attachmentsYes
(Except AsyncTrelloHttpClient)
NoYes
POST /1/cards/[card id or shortlink]/checklist/[idChecklist]/checkItem
POST /1/cards/[card id or shortlink]/checklist/[idChecklist]/checkItem/[idCheckItem]/convertToCard
POST /1/cards/[card id or shortlink]/checklists
POST /1/cards/[card id or shortlink]/idMembersYesNoYes
POST /1/cards/[card id or shortlink]/labelsYesNoYes
POST /1/cards/[card id or shortlink]/idLabelsYesNoYes
POST /1/cards/[card id or shortlink]/markAssociatedNotificationsRead
POST /1/cards/[card id or shortlink]/membersVoted
DELETE /1/cards/[card id or shortlink]YesNoYes
DELETE /1/cards/[card id or shortlink]/actions/[idAction]/comments
DELETE /1/cards/[card id or shortlink]/attachments/[idAttachment]YesNoYes
DELETE /1/cards/[card id or shortlink]/checklist/[idChecklist]/checkItem/[idCheckItem]
DELETE /1/cards/[card id or shortlink]/checklists/[idChecklist]
DELETE /1/cards/[card id or shortlink]/idMembers/[idMember]YesNoYes
DELETE /1/cards/[card id or shortlink]/labels/[color]
DELETE /1/cards/[card id or shortlink]/membersVoted/[idMember]
GET /1/checklists/[idChecklist]YesYesYes
GET /1/checklists/[idChecklist]/[field]
GET /1/checklists/[idChecklist]/board
GET /1/checklists/[idChecklist]/board/[field]
GET /1/checklists/[idChecklist]/cards
GET /1/checklists/[idChecklist]/cards/[filter]
GET /1/checklists/[idChecklist]/checkItems
GET /1/checklists/[idChecklist]/checkItems/[idCheckItem]
PUT /1/checklists/[idChecklist]
PUT /1/checklists/[idChecklist]/idCard
PUT /1/checklists/[idChecklist]/name
PUT /1/checklists/[idChecklist]/pos
POST /1/checklists
POST /1/checklists/[idChecklist]/checkItems
DELETE /1/checklists/[idChecklist]
DELETE /1/checklists/[idChecklist]/checkItems/[idCheckItem]
GET /1/labels/[idLabel]YesNoYes
PUT /1/labels/[idLabel]YesNoYes
PUT /1/labels/[idLabel]/color
PUT /1/labels/[idLabel]/name
POST /1/labels/[idLabel]YesNoYes
DELETE /1/labels/[idLabel]YesNoYes
GET /1/lists/[idList]YesYesYes
GET /1/lists/[idList]/[field]
GET /1/lists/[idList]/actions
GET /1/lists/[idList]/board
GET /1/lists/[idList]/board/[field]
GET /1/lists/[idList]/cardsYesYesYes
GET /1/lists/[idList]/cards/[filter]
PUT /1/lists/[idList]
PUT /1/lists/[idList]/closed
PUT /1/lists/[idList]/idBoard
PUT /1/lists/[idList]/name
PUT /1/lists/[idList]/pos
PUT /1/lists/[idList]/subscribed
POST /1/lists
POST /1/lists/[idList]/cards
GET /1/members/[idMember or username]Yes
GET /1/members/[idMember or username]/[field]
GET /1/members/[idMember or username]/actionsYesYesYes
GET /1/members/[idMember or username]/boardsYesYesYes
GET /1/members/[idMember or username]/boards/[filter]
GET /1/members/[idMember or username]/boardsInvited
GET /1/members/[idMember or username]/boardsInvited/[field]
GET /1/members/[idMember or username]/cardsYesNoYes
GET /1/members/[idMember or username]/cards/[filter]
GET /1/members/[idMember or username]/notifications
GET /1/members/[idMember or username]/notifications/[filter]
GET /1/members/[idMember or username]/organizations
GET /1/members/[idMember or username]/organizations/[filter]
GET /1/members/[idMember or username]/organizationsInvited
GET /1/members/[idMember or username]/organizationsInvited/[field]
GET /1/members/[idMember or username]/sessions
GET /1/members/[idMember or username]/tokens
PUT /1/members/[idMember or username]
PUT /1/members/[idMember or username]/avatarSource
PUT /1/members/[idMember or username]/bio
PUT /1/members/[idMember or username]/fullName
PUT /1/members/[idMember or username]/initials
PUT /1/members/[idMember or username]/prefs/colorBlind
PUT /1/members/[idMember or username]/prefs/minutesBetweenSummaries
PUT /1/members/[idMember or username]/username
POST /1/members/[idMember or username]/avatar
POST /1/members/[idMember or username]/idBoardsPinned
POST /1/members/[idMember or username]/oneTimeMessagesDismissed
DELETE /1/members/[idMember or username]/idBoardsPinned/[idBoard]
GET /1/notifications/[idNotification]
GET /1/notifications/[idNotification]/[field]
GET /1/notifications/[idNotification]/board
GET /1/notifications/[idNotification]/board/[field]
GET /1/notifications/[idNotification]/card
GET /1/notifications/[idNotification]/card/[field]
GET /1/notifications/[idNotification]/entities
GET /1/notifications/[idNotification]/list
GET /1/notifications/[idNotification]/list/[field]
GET /1/notifications/[idNotification]/member
GET /1/notifications/[idNotification]/member/[field]
GET /1/notifications/[idNotification]/memberCreator
GET /1/notifications/[idNotification]/memberCreator/[field]
GET /1/notifications/[idNotification]/organization
GET /1/notifications/[idNotification]/organization/[field]
PUT /1/notifications/[idNotification]
PUT /1/notifications/[idNotification]/unread
POST /1/notifications/all/read
GET /1/organizations/[idOrg or name]YesYesYes
GET /1/organizations/[idOrg or name]/[field]
GET /1/organizations/[idOrg or name]/actions
GET /1/organizations/[idOrg or name]/boardsYesYesYes
GET /1/organizations/[idOrg or name]/boards/[filter]
GET /1/organizations/[idOrg or name]/membersYesYesYes
GET /1/organizations/[idOrg or name]/members/[filter]
GET /1/organizations/[idOrg or name]/members/[idMember]/cards
GET /1/organizations/[idOrg or name]/membersInvited
GET /1/organizations/[idOrg or name]/membersInvited/[field]
GET /1/organizations/[idOrg or name]/memberships
GET /1/organizations/[idOrg or name]/memberships/[idMembership]
PUT /1/organizations/[idOrg or name]
PUT /1/organizations/[idOrg or name]/desc
PUT /1/organizations/[idOrg or name]/displayName
PUT /1/organizations/[idOrg or name]/members
PUT /1/organizations/[idOrg or name]/members/[idMember]
PUT /1/organizations/[idOrg or name]/members/[idMember]/deactivated
PUT /1/organizations/[idOrg or name]/memberships/[idMembership]
PUT /1/organizations/[idOrg or name]/name
PUT /1/organizations/[idOrg or name]/prefs/associatedDomain
PUT /1/organizations/[idOrg or name]/prefs/boardVisibilityRestrict/org
PUT /1/organizations/[idOrg or name]/prefs/boardVisibilityRestrict/private
PUT /1/organizations/[idOrg or name]/prefs/boardVisibilityRestrict/public
PUT /1/organizations/[idOrg or name]/prefs/externalMembersDisabled
PUT /1/organizations/[idOrg or name]/prefs/orgInviteRestrict
PUT /1/organizations/[idOrg or name]/prefs/permissionLevel
PUT /1/organizations/[idOrg or name]/website
POST /1/organizations
POST /1/organizations/[idOrg or name]/logo
DELETE /1/organizations/[idOrg or name]
DELETE /1/organizations/[idOrg or name]/logo
DELETE /1/organizations/[idOrg or name]/members/[idMember]
DELETE /1/organizations/[idOrg or name]/members/[idMember]/all
DELETE /1/organizations/[idOrg or name]/prefs/associatedDomain
DELETE /1/organizations/[idOrg or name]/prefs/orgInviteRestrict
GET /1/search
GET /1/search/members
GET /1/tokens/[token]
GET /1/tokens/[token]/[field]
GET /1/tokens/[token]/member
GET /1/tokens/[token]/member/[field]
GET /1/tokens/[token]/webhooks
GET /1/tokens/[token]/webhooks/[idWebhook]
POST /1/tokens/[token]/webhooks
DELETE /1/tokens/[token]
DELETE /1/tokens/[token]/webhooks/[idWebhook]
GET /1/types/[id]
GET /1/webhooks/[idWebhook]
GET /1/webhooks/[idWebhook]/[field]
PUT /1/webhooks/[idWebhook]
PUT /1/webhooks/[idWebhook]/active
PUT /1/webhooks/[idWebhook]/callbackURL
PUT /1/webhooks/[idWebhook]/description
PUT /1/webhooks/[idWebhook]/idModel
POST /1/webhooks
DELETE /1/webhooks/[idWebhook]

About

Java Wrapper for Trello API

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages