Advanced Type Retrieval
This is a simple how to
on different aspects of the Contentful JAVA API. All following samples assume a client setup like
CDAClient client = CDAClient.builder()
.setSpace("developer_bookshelf")
.setToken("0b7f6x59a0")
.build();
as described in our getting started guide.
All entries
To fetch all entries of the given space, you could use:
CDAArray array = client.fetch(CDAEntry.class).all();
This will result in
{
"total": 2,
"skip": 0,
"limit": 100,
"items": [
{
"fields": {
"author": {
"en-US": "Larry Wall"
},
"name": {
"en-US": "An introduction to regular expressions. Volume VI"
},
"description": {
"en-US": "Now you have two problems."
}
},
…
},
… another item
],
"sys": {
"type": "Array"
}
}
One specific entry
Using the .one(<YOUR_ITEM_ID>)
method of the client, like follows
CDAEntry entry = client.fetch(CDAEntry.class).one("5PeGS2SoZGSa4GuiQsigQu");
you'll get a response like
{
"fields": {
"author": {
"en-US": "Larry Wall"
},
"name": {
"en-US": "An introduction to regular expressions. Volume VI"
},
"description": {
"en-US": "Now you have two problems."
}
},
…
}
All assets
Retrieving all assets of a space, this snippet could help:
CDAArray array = client.fetch(CDAAsset.class).all();
And this will be the result for a different (space = cfexampleapi
, token = b4c0n73n7fu1
) sample space…
{
"total": 4,
"skip": 0,
"limit": 100,
"items": [
{
"fields": {
"file": {
"en-US": {
"fileName": "jake.png",
"contentType": "image/png",
"details": {
"image": {
"width": 100.0,
"height": 161.0
},
"size": 20480.0
},
"url": "//images.ctfassets.net/cfexampleapi/4hlteQAXS8iS0YCMU6QMWg/2a4d826144f014109364ccf5c891d2dd/jake.png"
}
},
"title": {
"en-US": "Jake"
}
},
"sys": {
"type": "Asset",
"id": "jake",
…
}
…
},
…
],
…
}
Only one asset
Retrieving one specific asset, take a look at this example:
CDAAsset asset = client.fetch(CDAAsset.class).one("jake");
And this will be the result in only one asset (again using the cfexampleapi
space):
{
"fields": {
"file": {
"en-US": {
"fileName": "jake.png",
"contentType": "image/png",
"details": {
"image": {
"width": 100.0,
"height": 161.0
},
"size": 20480.0
},
"url": "//images.ctfassets.net/cfexampleapi/4hlteQAXS8iS0YCMU6QMWg/2a4d826144f014109364ccf5c891d2dd/jake.png"
}
},
"title": {
"en-US": "Jake"
}
},
"sys": {
"type": "Asset",
"id": "jake",
…
}
…
}
Content types
In order to request all content types, you could use a call like this:
CDAArray array = client.fetch(CDAContentType.class).all();
Taking the resulting object, it'll be printed as (This example will only contain one content type, since the space only contains one type).
{
"total": 1,
"skip": 0,
"limit": 100,
"items": [
{
"fields": [
{
"name": "Name",
"id": "name",
"type": "Symbol",
"disabled": false,
"required": false,
"localized": false
},
{
"name": "Author",
"id": "author",
"type": "Symbol",
"disabled": false,
"required": false,
"localized": false
},
{
"name": "Description",
"id": "description",
"type": "Symbol",
"disabled": false,
"required": false,
"localized": false
}
],
"name": "Book",
"displayField": "name",
"description": "",
…
}
],
"assets": {},
"entries": {},
"sys": {
"type": "Array"
}
}
Fetching details of the current space
To fetch the current space meta information, you could use
CDASpace space = client.fetchSpace();
yielding
{
"name": "Developer Bookshelf",
"locales": [
{
"code": "en-US",
"name": "U.S. English",
"default": true
}
],
"defaultLocale": {
"code": "en-US",
"name": "U.S. English",
"default": true
},
"sys": {
"type": "Space",
"id": "developer_bookshelf"
}
}
Fetching all spaces
For this example, you will need to get a CMA API token and create a CMAClient using it:
CMAClient cmaClient = new CMAClient.Builder()
.setAccessToken(CMA_TOKEN)
.build();
CMAArray<CMASpace> spaces = cmaClient.spaces().fetchAll();
text = gson.toJson(spaces);
System.out.println(text);
And the result will be:
{
"items": [
{
"name": "Your Space here!",
"sys": {
"createdAt": "…",
"updatedBy": {
…
},
"createdBy": {
…
},
"id": "…",
"type": "Space",
"version": 2.0,
"updatedAt": "…"
}
},
… (More spaces, as much as you own)
],
"total": …,
"skip": 0,
"limit": 25,
"sys": {
"type": "Array"
}
}
Next steps
Not what you’re looking for? Try our FAQ.