iPhoneアプリにWordpressの記事を取り込む
WordPressの投稿記事をiPhoneアプリに取り込んで、Wordpressを更新するとアプリにも反映されるようにしたいと考えるようになりました。
iPhoneアプリとブログを連携させ、ブログを更新するとiPhoneアプリ側も更新されるという機能を作りたいと思います。この機能を作ることで、Wordpressに商品ページを更新すると、iPhoneアプリ側も更新され、常に最新の状態を作ることができ、iPhoneアプリの更新をする機会を減らすことができるようになります。
WordPressから、投稿記事をJSON出力する設定をする
まずは、Wordpressから、記事を出力する設定をする必要があります。記事をJsonフォーマットで出力することが可能となるWP REST APIを利用する事を前提として検討していきます。WordPress4.7以降から標準機能となったREST APIを用いて記事の情報を別のサービスで使えるようにします。
WP REST APIのエンドポイント
記事を取得するには次のURLにアクセスします。
パラメータを設定すると条件を絞って取得できます。
記事を全て取得(デフォルトでは最新10件)
- https://ドメイン/wp-json/wp/v2/posts
特定の記事だけを取得
- https://ドメイン/wp-json/wp/v2/posts/記事ID
記事4件を取得
- https://ドメイン/wp-json”/wp/v2/post?per_page=4
“プログラミング”という単語が含まれる投稿を検索
- https://ドメイン/wp-json/wp/v2/posts?search=プログラミング
アイキャッチ付き記事情報を取得
- https://ドメイン/wp-json/wp/v2/post?_embed
これで、Wordpressブログから、JSONフォーマットで記事を出力できるようになりました。
では次に、iPhoneアプリの開発側に移りたいと思います。
iPhoneアプリでWordpressの記事をSwift UIで使える状態にする。
投稿記事をJSON出力した情報を使って、Swift UIにて使える状況にしましょう。
WordPressから出力されたJSON形式のデータが、どのようなもので、どのように扱うのかを調べていきます。
まずは、どのような方法を使えばJSON形式の情報を使えるのか調べてみたいと思います。
キーワード
JSON4、JSON5
なるべく、SwiftUIのみで操作できること、新しい技術を使って最新の状態で利用出来るようにする事を目指します。
SwiftのJSONサポートを使用して、その構造に関係なく、JSONデータをエンコードおよびデコードします。
概要
他のアプリ、サービス、ファイルから送受信するJSONデータは、さまざまな形状や構造で提供できます。このサンプルで説明されているテクニックを使用して、外部JSONデータとアプリのモデルタイプの違いを処理します。
このサンプルは、単純なデータ型GroceryProductを定義し、いくつかの異なるJSON形式からその型のインスタンスを構築する方法を示します。
struct GroceryProduct: Codable
{
var name: String
var points: Int
var description: String?
}
配列からデータを読み取る
Swiftの表現型システムを使用して、同じ構造化されたオブジェクトのコレクションを手動でループしないようにします。このプレイグラウンドは、配列タイプを値として使用して、次のように構造化されたJSONを操作する方法を確認します。
コメント