外部クライアントがカスタム拡張データベーステーブルでアクションを実行できるように、APIを作成する必要があります。
正しいアプローチは何でしょうか?
外部クライアントは次のことができる必要があります。
PUT-サーバー上の既存のオブジェクトを変更する
POST-サーバー上に新しいオブジェクトを作成します
DELETE-サーバー上のオブジェクトを削除します
次に、応答(OK、または特定のエラー)を返す必要があります。 JSON?
または…。他の明らかな優れた解決策を見落としているか?
どんな提案も大歓迎です!
いくつかのオプションがありますが、私はjBackend拡張機能を使用しています。
JBackendのいくつかの利点。
Joomlaをモバイルアプリのバックエンドにできるように、私たちはしばらくそれを使用しています。私は先週のJ&Beyondでこれについて講演しました http://jandbeyond.org/programme.html?view=session&id=45&return=L3Byb2dyYW1tZS5odG1s
JBackendの詳細は http://www.selfget.com/products/jbackend.html にあります。同様のことを行うRedComponent拡張機能もあると思います。
J&Beyondにいる間、私はJoomla 3.6とBeyondに関するChris Davenportの講演に出席しました。この講演には、3.6に登場する可能性のあるJoomlaのAPI機能についての詳細がいくつかありました- http://jandbeyond.org/programme.html?view=session&id= 74&return = L3Byb2dyYW1tZS5odG1s
クリーンRESTのようなURLが必要な場合:[GET] api/articles/1
あなたは私のプロジェクトを見ることができます: https://github.com/pvullioud/japi
または、プラグインを使用しない場合は、ここに簡単な例があります https://github.com/pvullioud/joomla-slimframework
既製の拡張機能が受け入れられる場合、私の提案は Headless Joomlaおよび codingmallのVirtuemartプラグイン です。次のような単純なREST呼び出しを使用して、Joomlaビューの詳細情報を提供します。
https://www.example.com/?cmjspkjson_opt=10
出力:
{
"item": {
"id": "1",
"asset_id": "61",
"title": "Getting Started",
"alias": "getting-started",
"introtext": "It's easy",
"fulltext": "",
"state": "1",
"catid": "2",
"created": "2019-08-29 14:35:43",
"created_by": "581",
...
},
"pageclass_sfx": ""
}
複雑な呼び出しの例:
https://www.example.com/index.php?option=com_virtuemart&view=category&id=3&cmjspkjson_opt=10&reqobj[]=category.children
これは完全なjson出力の代わりに必要な部分のみを返します。
リクエストの数を節約するために、複数のreqobjパラメータがある場合があります。
免責事項:私はCodingMall.comに技術支援を提供します。