Azure API Management には、開発者ポータルの各ページの内容を、内容を構成するテンプレート セットを使用してカスタマイズする機能があります。 DotLiquid 構文、好みのエディター (DotLiquid for Designersなど)、および用意されているローカライズされた文字列リソース、グリフ リソース、およびページ コントロールのセットをテンプレートで使用して、表示されるページの内容を自由に構成できます。
このセクションのテンプレートを使用すると、開発者ポータルで製品ページのコンテンツをカスタマイズできます。
注
このドキュメントには既定のテンプレートのサンプルが含まれていますが、それらは継続的な改善に伴って変更される可能性があります。 開発者ポータルで目的の個々のテンプレートに移動することで、最新の既定のテンプレートを表示できます。 テンプレートの操作方法の詳細については、テンプレートを使用して API Management 開発者ポータルをカスタマイズする方法に関するページを参照してください。
注
以下のドキュメントの内容は、非推奨の開発者ポータルに関するものです。 2023 年 10 月に廃止され、すべての API Management サービスから削除されるまで、通常どおりに引き続き使用できます。 非推奨のポータルでは、重要なセキュリティ更新プログラムのみを受信します。 詳細については、次の記事を参照してください。
対象: デベロッパー | ベーシック | スタンダード | プレミアム
製品一覧
製品リスト テンプレートを使用すると、開発者ポータルで製品リスト ページの本文をカスタマイズできます。
既定のテンプレート
<search-control></search-control>
<div class="row">
<div class="col-md-9">
<h2>{% localized "ProductsStrings|PageTitleProducts" %}</h2>
</div>
</div>
<div class="row">
<div class="col-md-12">
{% if products.size > 0 %}
<ul class="list-unstyled">
{% for product in products %}
<li>
<h3><a href="/products/{{product.id}}">{{product.title}}</a></h3>
{{product.description}}
</li>
{% endfor %}
</ul>
<paging-control></paging-control>
{% else %}
{% localized "CommonResources|NoItemsToDisplay" %}
{% endif %}
</div>
</div>
コントロール
Product list テンプレートでは、次のページ コントロールを使用できます。
データ モデル
| プロパティ | タイプ | 説明 |
|---|---|---|
| ページング | Paging エンティティ。 | 製品コレクションに関するページング情報。 |
| フィルタリング | フィルター処理 エンティティ。 | 製品リスト ページのフィルター情報。 |
| プロダクツ | Product エンティティのコレクション。 | 現在のユーザーに表示される製品。 |
サンプル テンプレート データ
{
"Paging": {
"Page": 1,
"PageSize": 10,
"TotalItemCount": 2,
"ShowAll": false,
"PageCount": 1
},
"Filtering": {
"Pattern": null,
"Placeholder": "Search products"
},
"Products": [
{
"Id": "56f9445ffaf7560049060001",
"Title": "Starter",
"Description": "Subscribers will be able to run 5 calls/minute up to a maximum of 100 calls/week.",
"Terms": "",
"ProductState": 1,
"AllowMultipleSubscriptions": false,
"MultipleSubscriptionsCount": 1
},
{
"Id": "56f9445ffaf7560049060002",
"Title": "Unlimited",
"Description": "Subscribers have completely unlimited access to the API. Administrator approval is required.",
"Terms": null,
"ProductState": 1,
"AllowMultipleSubscriptions": false,
"MultipleSubscriptionsCount": 1
}
]
}
プロダクト
Product テンプレートを使用すると、開発者ポータルで製品ページの本文をカスタマイズできます。
既定のテンプレート
<h2>{{Product.Title}}</h2>
<p>{{Product.Description}}</p>
{% assign replaceString0 = '{0}' %}
{% if Limits and Limits.size > 0 %}
<h3>{% localized "ProductDetailsStrings|WebProductsUsageLimitsHeader"%}</h3>
<ul>
{% for limit in Limits %}
<li>{{limit.DisplayName}}</li>
{% endfor %}
</ul>
{% endif %}
{% if apis.size > 0 %}
<p>
<b>
{% if apis.size == 1 %}
{% capture apisCountText %}{% localized "ProductDetailsStrings|TextblockSingleApisCount" %}{% endcapture %}
{% else %}
{% capture apisCountText %}{% localized "ProductDetailsStrings|TextblockMultipleApisCount" %}{% endcapture %}
{% endif %}
{% capture apisCount %}{{apis.size}}{% endcapture %}
{{ apisCountText | replace : replaceString0, apisCount }}
</b>
</p>
<ul>
{% for api in Apis %}
<li>
<a href="/docs/services/{{api.Id}}">{{api.Name}}</a>
</li>
{% endfor %}
</ul>
{% endif %}
{% if subscriptions.size > 0 %}
<p>
<b>
{% if subscriptions.size == 1 %}
{% capture subscriptionsCountText %}{% localized "ProductDetailsStrings|TextblockSingleSubscriptionsCount" %}{% endcapture %}
{% else %}
{% capture subscriptionsCountText %}{% localized "ProductDetailsStrings|TextblockMultipleSubscriptionsCount" %}{% endcapture %}
{% endif %}
{% capture subscriptionsCount %}{{subscriptions.size}}{% endcapture %}
{{ subscriptionsCountText | replace : replaceString0, subscriptionsCount }}
</b>
</p>
<ul>
{% for subscription in subscriptions %}
<li>
<a href="/developer#{{subscription.Id}}">{{subscription.DisplayName}}</a>
</li>
{% endfor %}
</ul>
{% endif %}
{% if CannotAddBecauseSubscriptionNumberLimitReached %}
<b>{% localized "ProductDetailsStrings|TextblockSubscriptionLimitReached" %}</b>
{% elsif CannotAddBecauseMultipleSubscriptionsNotAllowed == false %}
<subscribe-button></subscribe-button>
{% endif %}
コントロール
Product list テンプレートでは、次のページ コントロールを使用できます。
- 購読ボタンを する
データ モデル
| プロパティ | タイプ | 説明 |
|---|---|---|
| プロダクト | 製品 | 指定した製品。 |
| 開発者登録状態 (IsDeveloperSubscribed) | ブーリアン | 現在のユーザーがこの製品をサブスクライブしているかどうか。 |
| サブスクリプション状態 | 数 | サブスクリプションの状態。 次の状態があります。 - 0 - suspended – サブスクリプションがブロックされ、サブスクライバーは製品の API を呼び出すことができません。- 1 - active – サブスクリプションがアクティブです。- 2 - expired – サブスクリプションが有効期限に達し、非アクティブ化されました。- 3 - submitted – サブスクリプション要求は開発者によって行われましたが、まだ承認または拒否されていません。- 4 - rejected – サブスクリプション要求が管理者によって拒否されました。- 5 - cancelled – サブスクリプションが開発者または管理者によって取り消されました。 |
| 制限 | 配列 | このプロパティは非推奨であり、使用しないでください。 |
| 委任されたサブスクリプションの有効化 | ブーリアン | サブスクリプションで 委任 が有効になっているかどうか。 |
| デリゲートサブスクリプションURL | 糸 | 委任が有効な場合は、委任されたサブスクリプション URL。 |
| 合意済み | ブーリアン | 製品に条件がある場合、現在のユーザーが条件に同意したかどうか。 |
| サブスクリプション | サブスクリプションの概要 エンティティのコレクション。 | 製品のサブスクリプション。 |
| アピス | API エンティティのコレクション。 | この製品の API。 |
| サブスクリプションの数が上限に達したため、追加できません。 | ブーリアン | 現在のユーザーがサブスクリプションの制限に関してこの製品をサブスクライブする資格があるかどうか。 |
| 複数のサブスクリプションは許可されていないため、追加できません | ブーリアン | 現在のユーザーが、複数のサブスクリプションが許可されているかどうかに関して、この製品をサブスクライブする資格があるかどうか。 |
サンプル テンプレート データ
{
"Product": {
"Id": "56f9445ffaf7560049060001",
"Title": "Starter",
"Description": "Subscribers will be able to run 5 calls/minute up to a maximum of 100 calls/week.",
"Terms": "",
"ProductState": 1,
"AllowMultipleSubscriptions": false,
"MultipleSubscriptionsCount": 1
},
"IsDeveloperSubscribed": true,
"SubscriptionState": 1,
"Limits": [],
"DelegatedSubscriptionEnabled": false,
"DelegatedSubscriptionUrl": null,
"IsAgreed": false,
"Subscriptions": [
{
"Id": "56f9445ffaf7560049070001",
"DisplayName": "Starter (default)"
}
],
"Apis": [
{
"id": "56f9445ffaf7560049040001",
"name": "Echo API",
"description": null,
"serviceUrl": "http://echoapi.cloudapp.net/api",
"path": "echo",
"protocols": [
2
],
"authenticationSettings": null,
"subscriptionKeyParameterNames": null
}
],
"CannotAddBecauseSubscriptionNumberLimitReached": false,
"CannotAddBecauseMultipleSubscriptionsNotAllowed": true
}
次のステップ
テンプレートの操作方法の詳細については、テンプレートを使用して API Management 開発者ポータルをカスタマイズする方法に関するページを参照してください。