-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathoverview.html
More file actions
208 lines (203 loc) · 16.3 KB
/
overview.html
File metadata and controls
208 lines (203 loc) · 16.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta content="text/html; charset=utf-8"/>
<title>Welcome file</title>
<link rel="stylesheet" href="style.css" integrity="sha384-4bNdbyOskJgh/Rv7MV6pG3Dlfd2EI7sPBtOvLN3Wh9/ixTPwuXfizfkYukM2tyWL%" crossorigin="anonymous"/>
</head>
<body class="stackedit">
<div class="stackedit__html"><p><a href="https://www.contentstack.com/"><img
src="https://www.contentstack.com/docs/static/images/contentstack.png" alt="Contentstack"></a></p>
<h1 id="java-sdk-for-contentstack">Java SDK for Contentstack</h1>
<p>Contentstack is a headless CMS with an API-first approach. It is a CMS that developers can use to build powerful
cross-platform applications in their favorite languages. Build your application frontend, and Contentstack will
take care of the rest. <a href="https://www.contentstack.com/">Read More</a>.</p>
<p>Contentstack provides Java SDK to build application on top of Java. Given below is the detailed guide and helpful
resources to get started with our Java SDK.</p>
<h2 id="prerequisite">Prerequisite</h2>
<p>You will need JDK installed on your machine. You can install it from <a
href="https://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html">here</a>.</p>
<h3 id="setup-and-installation">Setup and Installation</h3>
<p>To use the Contentstack Java SDK to your existing project, perform the steps given below:</p>
<p>Group id: <code>com.contentstack.sdk</code></p>
<p>Artifact id: <code>java</code></p>
<p><a href="https://mvnrepository.com/artifact/com.contentstack.sdk/java">{ version }</a></p>
<ol>
<li><strong>Maven</strong></li>
</ol>
<pre class=" language-java"><code class="prism language-java"><span
class="token operator"><</span>dependency<span class="token operator">></span>
<span class="token operator"><</span>groupId<span class="token operator">></span>com<span
class="token punctuation">.</span>contentstack<span class="token punctuation">.</span>sdk<span
class="token operator"><</span><span class="token operator">/</span>groupId<span
class="token operator">></span>
<span class="token operator"><</span>artifactId<span class="token operator">></span>java<span
class="token operator"><</span><span class="token operator">/</span>artifactId<span
class="token operator">></span>
<span class="token operator"><</span>version<span class="token operator">></span><span
class="token punctuation">{</span>version<span class="token punctuation">}</span><span
class="token operator"><</span><span class="token operator">/</span>version<span
class="token operator">></span>
<span class="token operator"><</span><span class="token operator">/</span>dependency<span
class="token operator">></span>
</code></pre>
<ol start="2">
<li><strong>Gradle</strong></li>
</ol>
<pre class=" language-java"><code class="prism language-java">implementation <span class="token string">'com.contentstack.sdk:java:{version}'</span>
</code></pre>
<p><em>Get updated version from</em> <a href="https://mvnrepository.com/artifact/com.contentstack.sdk/java"><em>version</em></a>
</p>
<h3 id="key-concepts-for-using-contentstack">Key Concepts for using Contentstack</h3>
<h4 id="stack">Stack</h4>
<p>A stack is like a container that holds the content of your app. Learn more about <a
href="https://www.contentstack.com/docs/guide/stack">Stacks</a>.</p>
<h4 id="content-type">Content Type</h4>
<p>Content type lets you define the structure or blueprint of a page or a section of your digital property. It is a
form-like page that gives Content Managers an interface to input and upload content. <a
href="https://www.contentstack.com/docs/guide/content-types">Read more</a>.</p>
<h4 id="entry">Entry</h4>
<p>An entry is the actual piece of content created using one of the defined content types. Learn more about <a
href="https://www.contentstack.com/docs/guide/content-management#working-with-entries">Entries</a>.</p>
<h4 id="asset">Asset</h4>
<p>Assets refer to all the media files (images, videos, PDFs, audio files, and so on) uploaded to Contentstack.
These files can be used in multiple entries. Read more about <a
href="https://www.contentstack.com/docs/guide/content-management#working-with-assets">Assets</a>.</p>
<h4 id="environment">Environment</h4>
<p>A publishing environment corresponds to one or more deployment servers or a content delivery destination where
the entries need to be published. Learn how to work with <a
href="https://www.contentstack.com/docs/guide/environments">Environments</a>.</p>
<h3 id="contentstack-java-sdk-5-minute-quickstart">Contentstack Java SDK: 5-minute Quickstart</h3>
<h4 id="initializing-your-sdk">Initializing your SDK</h4>
<p>To initialize the SDK, specify application API key, access token, and environment name of the stack as shown in
the snippet given below:</p>
<pre class=" language-java"><code class="prism language-java">Stack stack<span class="token operator">=</span>Contentstack<span
class="token punctuation">.</span><span class="token function">stack</span><span
class="token punctuation">(</span><span class="token string">"apiKey"</span><span class="token punctuation">,</span><span
class="token string">"accessToken"</span><span class="token punctuation">,</span><span class="token string">"environment"</span><span
class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<p>To get the API credentials mentioned above, log in to your Contentstack account and then in your top panel
navigation, go to Settings > Stack to view the API Key and Access Token.</p>
<h4 id="querying-content-from-your-stack">Querying content from your stack</h4>
<p>To retrieve a single entry from a content type use the code snippet given below:</p>
<pre class=" language-java"><code class="prism language-java"><span class="token comment">//stack is an instance of Stack class</span>
ContentType contentType <span class="token operator">=</span> stack<span class="token punctuation">.</span><span
class="token function">contentType</span><span class="token punctuation">(</span><span
class="token string">"content_type_uid"</span><span class="token punctuation">)</span><span
class="token punctuation">;</span>
Entry entry <span class="token operator">=</span> contentType<span class="token punctuation">.</span><span
class="token function">entry</span><span class="token punctuation">(</span><span class="token string">"entry_uid"</span><span
class="token punctuation">)</span><span class="token punctuation">;</span>
entry<span class="token punctuation">.</span><span class="token function">fetch</span><span
class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">EntryResultCallBack</span><span
class="token punctuation">(</span><span class="token punctuation">)</span><span
class="token punctuation">{</span>
<span class="token annotation punctuation">@Override</span>
<span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">onCompletion</span><span
class="token punctuation">(</span>ResponseType responseType<span class="token punctuation">,</span> Error error<span
class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>error<span
class="token operator">==</span>null<span class="token punctuation">)</span><span
class="token punctuation">{</span>
<span class="token comment">//Success block</span>
<span class="token punctuation">}</span><span class="token keyword">else</span><span
class="token punctuation">{</span>
<span class="token comment">//Error block</span>
<span class="token punctuation">}</span><span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<h5 id="get-multiple-entries">Get Multiple Entries</h5>
<p>To retrieve multiple entries of a particular content type, use the code snippet given below:</p>
<pre class=" language-java"><code class="prism language-java"><span class="token comment">//stack is an instance of Stack class</span>
Query query <span class="token operator">=</span> stack<span class="token punctuation">.</span><span
class="token function">contentType</span><span class="token punctuation">(</span><span
class="token string">"content_type_uid"</span><span class="token punctuation">)</span><span
class="token punctuation">.</span><span class="token function">query</span><span
class="token punctuation">(</span><span class="token punctuation">)</span><span
class="token punctuation">;</span>
query<span class="token punctuation">.</span><span class="token function">find</span><span
class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">QueryResultsCallBack</span><span
class="token punctuation">(</span><span class="token punctuation">)</span><span
class="token punctuation">{</span>
<span class="token annotation punctuation">@Override</span>
<span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">onCompletion</span><span
class="token punctuation">(</span>ResponseType responseType<span class="token punctuation">,</span> QueryResult queryResult<span
class="token punctuation">,</span> Error error<span class="token punctuation">)</span> <span
class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>error <span class="token operator">==</span> null<span
class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token comment">//Success block</span>
<span class="token punctuation">}</span><span class="token keyword">else</span><span
class="token punctuation">{</span>
<span class="token comment">//Error block</span>
<span class="token punctuation">}</span><span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<h3 id="advanced-queries">Advanced Queries</h3>
<p>You can query for content types, entries, assets and more using our Java API Reference.</p>
<p><a href="https://www.contentstack.com/docs/platforms/java/api-reference/">Java API Reference Doc</a></p>
<h3 id="working-with-images">Working with Images</h3>
<p>We have introduced Image Delivery APIs that let you retrieve images and then manipulate and optimize them for
your digital properties. It lets you perform a host of other actions such as crop, trim, resize, rotate,
overlay, and so on.</p>
<p>For example, if you want to crop an image (with width as 300 and height as 400), you simply need to append query
parameters at the end of the image URL, such as, <a
href="https://images.contentstack.io/v3/assets/download?crop=300,400">https://images.contentstack.io/v3/assets/download?crop=300,400</a>.
There are several more parameters that you can use for your images.</p>
<p><a href="https://www.contentstack.com/docs/apis/image-delivery-api/">Read Image Delivery API documentation</a>.
</p>
<p>You can use the Image Delivery API functions in this SDK as well. Here are a few examples of its usage in the
SDK.</p>
<pre class=" language-java"><code class="prism language-java"><span class="token comment">//set the image quality to 100</span>
LinkedHashMap imageParams <span class="token operator">=</span> <span class="token keyword">new</span> <span
class="token class-name">LinkedHashMap</span><span class="token punctuation">(</span><span
class="token punctuation">)</span><span class="token punctuation">;</span>
imageParams<span class="token punctuation">.</span><span class="token function">put</span><span
class="token punctuation">(</span><span class="token string">"quality"</span><span
class="token punctuation">,</span> <span class="token number">100</span><span class="token punctuation">)</span><span
class="token punctuation">;</span>
imageUrl <span class="token operator">=</span> Stack<span class="token punctuation">.</span><span
class="token function">ImageTransform</span><span class="token punctuation">(</span>imageUrl<span
class="token punctuation">,</span> imageParams<span class="token punctuation">)</span><span
class="token punctuation">;</span>
<span class="token comment">//resize the image by specifying width and height</span>
LinkedHashMap imageParams <span class="token operator">=</span> <span class="token keyword">new</span> <span
class="token class-name">LinkedHashMap</span><span class="token punctuation">(</span><span
class="token punctuation">)</span><span class="token punctuation">;</span>
imageParams<span class="token punctuation">.</span><span class="token function">put</span><span
class="token punctuation">(</span><span class="token string">"width"</span><span
class="token punctuation">,</span> <span class="token number">100</span><span class="token punctuation">)</span><span
class="token punctuation">;</span>
imageParams<span class="token punctuation">.</span><span class="token function">put</span><span
class="token punctuation">(</span><span class="token string">"height"</span><span
class="token punctuation">,</span><span class="token number">100</span><span
class="token punctuation">)</span><span class="token punctuation">;</span>
imageUrl <span class="token operator">=</span> Stack<span class="token punctuation">.</span><span
class="token function">ImageTransform</span><span class="token punctuation">(</span>imageUrl<span
class="token punctuation">,</span> imageParams<span class="token punctuation">)</span><span
class="token punctuation">;</span>
<span class="token comment">//enable auto optimization for the image</span>
LinkedHashMap imageParams <span class="token operator">=</span> <span class="token keyword">new</span> <span
class="token class-name">LinkedHashMap</span><span class="token punctuation">(</span><span
class="token punctuation">)</span><span class="token punctuation">;</span>
imageParams<span class="token punctuation">.</span><span class="token function">put</span><span
class="token punctuation">(</span><span class="token string">"auto"</span><span
class="token punctuation">,</span> <span class="token string">"webp"</span><span
class="token punctuation">)</span><span class="token punctuation">;</span>
imageUrl <span class="token operator">=</span> Stack<span class="token punctuation">.</span><span
class="token function">ImageTransform</span><span class="token punctuation">(</span>imageUrl<span
class="token punctuation">,</span> imageParams<span class="token punctuation">)</span><span
class="token punctuation">;</span>
</code></pre>
<h3 id="helpful-links">Helpful Links</h3>
<ul>
<li><a href="https://www.contentstack.com">Contentstack Website</a></li>
<li><a href="https://contentstack.com/docs">Official Documentation</a></li>
<li><a href="https://contentstack.com/docs/apis/content-delivery-api/">Content Delivery API Docs</a></li>
</ul>
</div>
</body>
</>