web-dev-qa-db-ja.com

REST Joomla3.0のAPI

私は現在Joomla3.3.6を使用しており、コンテンツ情報やユーザー情報などにアクセスするためにREST APIを見つける必要があります。すでに次のRESTAPI。TechJoomlaによって開発されましたが、サンプルリクエスト、認証プロセスなどに関する適切なドキュメントが見つかりません。

https://techjoomla.com/rest-api-for-joomla

また、有料の拡張機能のように見えるjoomlaの拡張機能として開発されたjbackend REST API)についても検討しました。

多くのグーグルの後、私はまだJoomlaコンテンツにアクセスするためのREST APIを見つけるのに苦労しています。この問題について私を助けてください。

前もって感謝します。

13
user3793310

私も同じ問題に遭遇したので、Slim PHPマイクロフレームワークを搭載したJoomla3.4.x用のRESTfulAPIを開発することになりました。これは商用のJoomlaであることに注意してください。パッケージ。

パッケージには次のものが含まれています。

  • サービスコントロールパネルコンポーネント
  • Slim v2.6.2のバージョンを含むJoomla「サービス」アドオンライブラリ(および他のいくつかのライブラリ)は、composerを介して取得し、通常はベンダーフォルダにあります。これについては後で詳しく説明します。 。
  • サービスJoomlaプラグイン
  • サービスRESTプラグイン
  • サービススリム構成プラグイン
  • スリムなJSONAPIビュープラグイン
  • スリムJSONAPIミドルウェアプラグイン

「これらすべてのプラグインのポイントは何ですか?」と尋ねるかもしれません。

答えは、コアコンポーネントの機能を区分化できるようにし、簡単に拡張できるサービスルートアーキテクチャへの扉を開くことです。たとえば、Joomla ACLを使用して新しいプラグインを簡単に追加し、それらの新しいルートへのアクセスを制限できることに注意してください。

サービスコントロールパネルでは、ユーザーごとにトークンを作成できます(または、Joomlaユーザーごとに複数のトークンを作成することもできます)。また、エンドユーザーはSlimマイクロフレームワークパラメーターを構成でき、APIレート制限機能のしきい値(現在は1分あたりのリクエスト数に基づく)を含めることもできます。実際、その部分は、応答ヘッダー内のAPIレートしきい値の状態に関するライブフィードバックを提供するため、完全に素晴らしいものです。

CAPIコアパッケージ( "cAPI"、すべてに製品名が必要なため "Constant API"の略...)はまさにそれです-coreパッケージ。現在開発中のアドオンのホストがあります。最初のアドオンは、安全なLDAP JSON API(Microsoft Active Directoryに接続)であり、さらに多くの優れたアドオンが登場します。

このすべての要点は、基本的に、あなたの要求は答えられ、今や商業的にサポートされた解決策がついに到着したということです。さらに、ホイールを再発明する代わりに、人気のある既存のマイクロフレームワーク(Slim)に基づいて拡張機能を作成し、開発者がコアのプラグ可能なフレームワークで作業または開発しやすくしました。

したがって、Joomla(堅牢なACL、高度なプラグインアーキテクチャ、豊富な拡張機能)とSim(実績のある、標準に準拠した、成熟したRESTful PHPマイクロフレームワーク)をすべて1つの簡単な方法で利用できます。パッケージをインストールします。

簡単にクエリできるAPIを介してWebサイトを公開することは、軽視すべきではありません。これを選択した人は、100%HTTPSアクセスを実装し、サーバーのセキュリティを強化することを望んでいます。

あなたはここでより多くの情報を見つけることができます: http://getcapi.org

これがあなたを正しい方向に向かわせることを願っています。

もう一つ:

私はあなたの質問をもう一度読み、ユーザーとコンテンツにアクセスする必要性についてその部分を読みました。これらは実際に私が取り組んだ最初のサービスエンドポイントでした:

/ api/v1/user /-ユーザーのログインとログアウトに使用でき、アクティブ化されたJoomlaセッションを応答で返します-これはマルチモーダル認証も提供します(ヘッダーのトークンまたはURL文字列のユーザー名とパスワードの両方を介して)。基本的に、それはあなたのニーズで動作します。 -次のようにユーザーのログアウトを強制します:/ api/v1/user/logout/username/joomlasessionid

基本的に、これはリモートサービス、またはiOSやAndroidアプリなど)を駆動するためにカスタマイズされています。

(GET,POST,PUT,DELETE) /api/v1/content/...

-コンテンツを作成、取得、更新、削除する機能を提供します

(GET,POST,PUT,DELETE) /api/v1/category/...

-カテゴリを作成、取得、更新、および削除する機能を提供します

また、/ api/v1/user/login /(ユーザー名)/(パスワード)

/api/v1/user/logout/(username)/(joomlasessionid)

/api/v1/user/profile

/api/slim/routes

and more...

利用可能なメソッドの詳細については、次を参照してください。

http://learn.getcapi.org/api-methods

言うまでもなく、すべてのcAPICoreパッケージの改善は年間サブスクリプション料金に含まれています。アドオンは個別に請求およびサポートされます(請求されます)。現在、Joomla Extensions Directory(JED)にリストされています https://extensions.joomla.org/extensions/extension/capi-core-rest-api

2016年3月28日更新

CAPI v1.2.1以降、Joomlaユーザーおよびグループ管理のCRUDを可能にする新しいメソッドが追加されました。さらに、私は http://getcapi.io でサンドボックスクラスターに取り組んでおり、潜在的な顧客がサブスクライブする前にAPI機能を完全にテストできるようにしています。

2016年9月18日更新

CAPI v1.2.5以降、APIトークンに対するCRUDアクションを許可する新しいメソッドが追加されました。 APIは、Swagger.jsonを自動生成できるdoc-blocksでも更新されています。 cAPIには、SwaggerUIによって生成された完全なAPIドキュメントにアクセスするためのバックエンドビューとフロントエンドビューの両方が含まれています。

最後に、 https://getcapi.io とdemo1.getcapi.ioおよびdemo2.getcapi.ioが公開され、訪問者がAPIドキュメントをテストできるようになりました。間もなく、アカウントを顧客に配布して、顧客が自分でAPIを完全にテストできるように、自動リセットするように構成されます。

8
Steve Tsiopanos
4
mrGott

これにはjBackendをお勧めします。

詳細については、 https://joomla.stackexchange.com/questions/10306/creating-an-api-for-a-joomla-extension/10307#10307 で説明しています。

4
AndyGaskell