本チュートリアルでは、Androidアプリ開発でhacoCMSを利用する方法を解説します。
本チュートリアルでは、以下の内容については前提とし、説明を省略します。
お持ちのhacoCMSアカウントの適当なプロジェクト(無ければ作成してください)に、記事APIを以下の設定で作成してください。APIの作成方法についてはhacoCMSのドキュメントをご確認ください。
記事
(任意)entries
リスト形式
下記の表と画像を参照
# | フィールドタイプ | フィールド名(任意) | フィールド ID |
---|---|---|---|
1 | テキストフィールド | タイトル | title |
2 | テキストフィールド | 概要 | description |
3 | リッチテキスト | 本文 | body |
APIスキーマの設定画面は以下のようになります。
記事APIを作成できたら、適当な記事をいくつか作成してみましょう。コンテンツの作成方法についてはhacoCMSのドキュメントをご確認ください。
build.gradleファイルのdependenciesに以下を追加してください。
implementation "com.hacocms.sdk:hacocms:1.0.0"
SDKがhacoCMSのAPIにアクセスできるようにするために、Android Manifest内でインターネットアクセス権限を追加してください。
<uses-permission android:name="android.permission.INTERNET" />
val client = HacoCmsClient.create( baseUrl = "BASE_URL", accessToken = "ACCESS_TOKEN", projectDraftToken = "PROJECT_DRAFT_TOKEN" )
APIから返ってきた結果をmapingするために、 ApiContentからextendsされたObjectを作ります。
data class ExampleContent( @SerializedName("id") override val id: String, @SerializedName("createdAt") override val createdAt: LocalDateTime, @SerializedName("updatedAt") override val updatedAt: LocalDateTime, @SerializedName("publishedAt") override val publishedAt: LocalDateTime?, @SerializedName("closedAt") override val closedAt: LocalDateTime?, @SerializedName("title") val title: String?, @SerializedName("description") val description: String?, @SerializedName("body") val body: String?, ) : ApiContent
APIから返ってきた結果を処理するためのコードです。
// Gets list content. client.getList<ExampleContent>(endpoint = "/example") // Gets list content with custom query. client.getList<ExampleContent>( endpoint = "/example", query = QueryParameters(limit = LIMIT, offset = OFFSET) ) // Gets content by content id. client.getContent<ExampleContent>(endpoint = "/example", id = "CONTENT_ID") // Gets single object. client.getSingle<ExampleContent>(endpoint = "/single") // Gets including draft. client.getListIncludingDraft<ExampleContent>( endpoint = "/example", query = QueryParameters(search = "abc", s = listOf("createdAt".sq().desc())), )
サンプルコードをGitHubで公開していますので、適宜ご活用ください。