response.data.item.elements.headline.value
.
In a more complicated scenario, this approach becomes cumbersome. It forces you to remember the JSON structure of your content items and the codenames of your content elements.
To make this easier, use a Delivery SDK to map the retrieved content items to their strongly typed models.
body_text
becomes property bodyText
.// Tip: Find more about Java SDK at https://kontent.ai/learn/java
import kontent.ai.delivery.Asset;
import kontent.ai.delivery.ContentItemMapping;
import kontent.ai.delivery.ElementMapping;
import kontent.ai.delivery.System;
import java.lang.String;
import java.util.List;
/**
* This code was generated by a <a href="https://github.com/kontent-ai/java-packages/tree/master/delivery-sdk-generators">kontent-generators-java tool</a>
*
* Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.
* For further modifications of the class, create a separate file and extend this class.
*/
@ContentItemMapping("homepage")
public class Homepage {
@ElementMapping("body_text")
String bodyText;
@ElementMapping("headline")
String headline;
@ElementMapping("picture")
List<Asset> picture;
System system;
public String getBodyText() {
return bodyText;
}
public void setBodyText(String bodyText) {
this.bodyText = bodyText;
}
public String getHeadline() {
return headline;
}
public void setHeadline(String headline) {
this.headline = headline;
}
public List<Asset> getPicture() {
return picture;
}
public void setPicture(List<Asset> picture) {
this.picture = picture;
}
public System getSystem() {
return system;
}
public void setSystem(System system) {
this.system = system;
}
}
// Find instructions on using the Java model generator at https://github.com/kontent-ai/java-packages/tree/master/delivery-sdk-generators
import com.squareup.javapoet.JavaFile
import kontent.ai.delivery.DeliveryClient
import kontent.ai.delivery.DeliveryOptions
import kontent.ai.delivery.generators.CodeGenerator
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath('ai.kontent:kontent-delivery-generators:latest.release')
}
}
// showcase task
task generateModels {
doLast {
// The most complex solution, you could configure the client as you want
// i.e. set preview API key
DeliveryOptions options = new DeliveryOptions();
options.setProjectId("975bf280-fd91-488c-994c-2f04416e5ee3");
DeliveryClient client = new DeliveryClient(options);
CodeGenerator generator = new CodeGenerator(
options.getProjectId(),
'ai.kontent.test.springapp.models',
file('src/main/java')
);
List<JavaFile> sources = generator.generateSources(client);
generator.writeSources(sources);
}
}
// Tip: Find more about Java SDK at https://kontent.ai/learn/java
import kontent.ai.delivery.*;
// Initializes a DeliveryClient
DeliveryClient client = new DeliveryClient("8d20758c-d74c-4f59-ae04-ee928c0816b7");
// Tip: Create strongly typed models according to https://kontent.ai/learn/strongly-typed-models
// Registers the model class for navigation items
client.registerType(Homepage.class);
CompletionStage<Homepage> homepageResult = client.getItem("hello_caas_world", Homepage.class);
// Use homepageResult
// homepageResult.thenAccept(homepage -> System.out.println(homepage.getHeadline())