構成、認可およびコンテンツのフェッチのためのRESTインタフェース
コンテンツ・コネクタは、コネクタ構成の定義、認可の設定およびコンテンツのフェッチのために、次のREST APIを実装する必要があります。
/rest/api
実装intradoc.connectorcommon.server.APIResource
ここでは、コンテンツ・コネクタでサポートされている最新バージョンを返します。
GET http://host:port/connector/rest/api
[ "v1"]
/rest/api/v1/server
実装intradoc.connectorcommon.server.ServerResource
これは、認証タイプ、ピッカー・タイプ、カスタム・フィールドなど、コンテンツ・コネクタ構成に関する情報を返します。
GET http://host:port/connector/rest/api/v1/server
{
"name": "Pexels Connector",
"nameLocalizations": [
{
"locale": "en",
"localizedString": "Pexels Connector"
}
],
"version": " (, , )",
"about": "Pexels Connector.<br>Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.",
"aboutLocalizations": [
{
"locale": "en",
"localizedString": "Pexels Connector.<br>Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved."
}
],
"authenticationType": "NO_AUTH",
"pickerType": "CUSTOM",
"enableMultiUserCopyBack": false,
"maxUploadSize": 1073741824,
"fields": [
{
"ID": "ProxyHost",
"datatype": "STRING",
"siteSettable": true,
"userSettable": false,
"connectorSettable": false,
"authorizationURLParameter": false,
"label": "HTTP Proxy Hostname",
"labelLocalizations": [
{
"locale": "en",
"localizedString": "HTTP Proxy Hostname"
}
],
"description": "The HTTP proxy hostname, leave blank to disable.",
"descriptionLocalizations": [
{
"locale": "en",
"localizedString": "The HTTP proxy hostname, leave blank to disable."
}
],
"required": false
},
{
"ID": "ProxyPort",
"datatype": "STRING",
"siteSettable": true,
"userSettable": false,
"connectorSettable": false,
"authorizationURLParameter": false,
"label": "HTTP Proxy Port",
"labelLocalizations": [
{
"locale": "en",
"localizedString": "HTTP Proxy Port"
}
],
"description": "The HTTP proxy port number, leave blank to default to port 80.",
"descriptionLocalizations": [
{
"locale": "en",
"localizedString": "The HTTP proxy port number, leave blank to default to port 80."
}
],
"required": false
},
{
"ID": "ProxyScheme",
"datatype": "STRING",
"siteSettable": true,
"userSettable": false,
"connectorSettable": false,
"authorizationURLParameter": false,
"label": "HTTP Proxy Scheme",
"labelLocalizations": [
{
"locale": "en",
"localizedString": "HTTP Proxy Scheme"
}
],
"description": "The HTTP proxy scheme, leave blank to default to http.",
"descriptionLocalizations": [
{
"locale": "en",
"localizedString": "The HTTP proxy scheme, leave blank to default to http."
}
],
"required": false
},
{
"ID": "ClientID",
"datatype": "STRING",
"siteSettable": true,
"userSettable": false,
"connectorSettable": false,
"authorizationURLParameter": false,
"label": "Client ID",
"labelLocalizations": [
{
"locale": "en",
"localizedString": "Client ID"
}
],
"description": null,
"descriptionLocalizations": [],
"required": true
}
],
"supportedConnectorTypes": [
"COPY"
],
"proprietorName": "",
"serviceProviderName": "Pexels",
"nativeAppInfos": null
}
/rest/api/v1/authorization/authorizationURLs
実装intradoc.connectorcommon.server.AuthorizationResource
これは、コンテンツ・コネクタがOAuthをサポートしている場合にのみ必要です。
ユーザーが資格証明を提供し、アクセスを認可するOAuthフローを呼び出すためにブラウザがリダイレクトする認可URLを返します。 ペイロードで渡されるリダイレクトURLは、OAuthプロバイダが一時コードでリダイレクトするURLです。
POST http://host:port/connector/rest/api/v1/authorization/authorizationURLs
Headers
Content-Type:application/json
X-CEC-ClientID:client-id
X-CEC-ClientSecret:client-secret
X-CEC-ProxyHost:proxy-host
X-CEC-ProxyPort:80
X-CEC-ProxyScheme:http
Payload
{"redirectURL":"http://host:port/documents/web/AR_COMPLETE_AUTHORIZATION"}
Response
{
"authorizationURL": "https://domain/oauth/authorize?response_type=code&client_id=id://host:port/documents/web/AR_COMPLETE_AUTHORIZATION",
"fieldValueMap": null
}
/rest/api/v1/authorization/completedAuthorizations
実装intradoc.connectorcommon.server.AuthorizationResource
これは、コンテンツ・コネクタがOAuthをサポートしている場合にのみ必要です。
これは、OAuthフローの2番目の部分を完了するために呼び出されます。ここでは、前のステップでOAuthプロバイダから取得したコードがクライアントIDおよびシークレットとともに渡され、アクセス・トークンが取得されて、有効期限とともにトークンがリフレッシュされます。 この情報はOracle Content Managementに戻され、サインインしたユーザーに対して安全に格納されます。
POST http://host:port/connector/rest/api/v1/authorization/completedAuthorizations
Headers
Content-Type:application/json
X-CEC-ClientID:client-id
X-CEC-ClientSecret:client-secret
X-CEC-code:code
X-CEC-ProxyHost:proxy-host
X-CEC-ProxyPort:80
X-CEC-ProxyScheme:http
Content-Type:application/json
Payload
{"redirectURL":"http://host:port/documents/web/AR_COMPLETE_AUTHORIZATION"}
Response
{
"authorized": true,
"authorizedUserDisplayName": null,
"authorizedUserEmailAddress": null,
"authorizedUserPictureURL": null,
"fieldValueMap": {
"RefreshToken": "refresh-token",
"AccessToken": "access-token"
}
}
/rest/api/v1/authorization/basicAuthorization
実装intradoc.connectorcommon.server.AuthorizationResource
これは、コンテンツ・コネクタが基本的な認可をサポートしている場合にのみ必要です。 ここでは、パスワード・フィールドがbase64でエンコードされたヘッダーでサインイン資格証明が渡されます。 コンテンツ・コネクタは常にSSLエンドポイントにデプロイすることをお薦めします。
POST http://host:port/connector/rest/api/v1/authorization/basicAuthorization
POST http://host:port/connector/rest/api/v1/authorization/basicAuthorization
Headers
Content-Type:application/json
X-CEC-UserName:user
X-CEC-UserPwd:password
X-CEC-ProxyHost:proxy-host
X-CEC-ProxyPort:80
X-CEC-ProxyScheme:http
Response
true/rest/api/v1/content
実装intradoc.connectorcommon.server.ContentResource
指定されたファイルIDによって、ファイルの入力ストリームが返されます。
GET http://host:port/connector/rest/api/v1/content?uri=fFileGUID:xxxx
Request Headers
X-CEC-ClientID:client-id
X-CEC-ProxyHost:proxy-host
X-CEC-ProxyPort:80
X-CEC-ProxyScheme:http
Response Headers
content-disposition attachment; filename=pexels-photo-xxxx.jpeg
content-type image/jpeg
Response Body
File Content