Modelli di prodotto in Gestione API di AzureProduct templates in Azure API Management

In Gestione API di Azure è possibile personalizzare le pagine del portale per sviluppatori usando un set di modelli che ne configurano il contenuto.Azure API Management provides you the ability to customize the content of developer portal pages using a set of templates that configure their content. La sintassi DotLiquid usata insieme a un editor di propria scelta, quale DotLiquid for Designers, e a un set di risorse stringa, risorse Glifo e controlli di pagina offre una grande flessibilità nella configurazione personalizzata del contenuto delle pagine attraverso questi modelli.Using DotLiquid syntax and the editor of your choice, such as DotLiquid for Designers, and a provided set of localized String resources, Glyph resources, and Page controls, you have great flexibility to configure the content of the pages as you see fit using these templates.

I modelli in questa sezione consentono di personalizzare il contenuto delle pagine prodotto del portale per sviluppatori.The templates in this section allow you to customize the content of the product pages in the developer portal.

Nota

La documentazione seguente include alcuni modelli predefiniti di esempio. A causa dei continui miglioramenti che vengono apportati, questi modelli sono però soggetti a modifiche.Sample default templates are included in the following documentation, but are subject to change due to continuous improvements. È possibile visualizzare i modelli predefiniti direttamente nel portale per sviluppatori accedendo ai singoli modelli desiderati.You can view the live default templates in the developer portal by navigating to the desired individual templates. Per ulteriori informazioni sull'uso dei modelli, vedere Come personalizzare il portale per sviluppatori di Gestione API usando i modelli.For more information about working with templates, see How to customize the API Management developer portal using templates.

Elenco prodottiProduct list

Il modello Elenco prodotti consente di personalizzare il corpo della pagina di elenco prodotti nel portale per sviluppatori.The Product list template allows you to customize the body of the product list page in the developer portal.

Elenco prodottiProducts list

Modello predefinitoDefault template

<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>  

ControlliControls

Il modello Product list può usare i controlli di pagina seguenti.The Product list template may use the following page controls.

Modello di datiData model

ProprietàProperty TipoType DescrizioneDescription
PagingPaging Entità Paging.Paging entity. Le informazioni di paging per la raccolta di prodotti.The paging information for the products collection.
FiltriFiltering Entità Filtri.Filtering entity. Le informazioni dei filtri per la pagina di elenco proodtti.The filtering information for the products list page.
ProdottiProducts Raccolta di entità Prodotto.Collection of Product entities. I prodotti visibili all'utente corrente.The products visible to the current user.

Dati del modello di esempioSample template data

{  
    "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  
        }  
    ]  
}  

ProdottoProduct

Il modello Prodotto consente di personalizzare il corpo della pagina prodotto nel portale per sviluppatori.The Product template allows you to customize the body of the product page in the developer portal.

Pagina prodotto nel portale per sviluppatoriDeveloper portal product page

Modello predefinitoDefault template

<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 %}  

ControlliControls

Il modello Product list può usare i controlli di pagina seguenti.The Product list template may use the following page controls.

Modello di datiData model

ProprietàProperty TipoType DescrizioneDescription
ProdottoProduct ProdottoProduct Il prodotto specificato.The specified product.
IsDeveloperSubscribedIsDeveloperSubscribed booleanboolean Indica se l'utente corrente è sottoscritto a questo prodotto.Whether the current user is subscribed to this product.
SubscriptionStateSubscriptionState numbernumber Lo stato della sottoscrizione.The state of the subscription. Gli stati possibili sono elencati di seguito:Possible states are:

- 0 - suspended: la sottoscrizione è bloccata e il sottoscrittore non può chiamare le API del prodotto.- 0 - suspended – the subscription is blocked, and the subscriber cannot call any APIs of the product.
- 1 - active: la sottoscrizione è attiva.- 1 - active – the subscription is active.
- 2 - expired: la sottoscrizione ha raggiunto la data di scadenza ed è stata disattivata.- 2 - expired – the subscription reached its expiration date and was deactivated.
- 3 - submitted: la richiesta di sottoscrizione è stata eseguita dallo sviluppatore, ma non è ancora stata approvata o rifiutata.- 3 - submitted – the subscription request has been made by the developer, but has not yet been approved or rejected.
- 4 - rejected: la richiesta di sottoscrizione è stata rifiutata da un amministratore.- 4 - rejected – the subscription request has been denied by an administrator.
- 5 - cancelled: la sottoscrizione è stata annullata dallo sviluppatore o dall'amministratore.- 5 - cancelled – the subscription has been cancelled by the developer or administrator.
limitiLimits arrayarray Questa proprietà è deprecata e non deve essere usata.This property is deprecated and should not be used.
DelegatedSubscriptionEnabledDelegatedSubscriptionEnabled booleanboolean Indica se sia abilitata la delega per questa sottoscrizione.Whether delegation is enabled for this subscription.
DelegatedSubscriptionUrlDelegatedSubscriptionUrl stringstring Se è abilitata la delega, indica l'URL della sottoscrizione delegata.If delegation is enabled, the delegated subscription URL.
IsAgreedIsAgreed booleanboolean Se il prodotto presenta delle condizioni, indica se l'utente corrente le ha accettate.If the product has terms, whether the current user has agreed to the terms.
SottoscrizioniSubscriptions Raccolta di entità Riepilogo della sottoscrizione.Collection of Subscription summary entities. Le sottoscrizioni al prodotto.The subscriptions to the product.
APIApis Raccolta di entità API.Collection of API entities. Le API in questo prodotto.The APIs in this product.
CannotAddBecauseSubscriptionNumberLimitReachedCannotAddBecauseSubscriptionNumberLimitReached booleanboolean Indica se l'utente corrente è idoneo per la sottoscrizione al prodotto per quanto riguarda il limite delle sottoscrizioni.Whether the current user is eligible to subscribe to this product with regard to the subscription limit.
CannotAddBecauseMultipleSubscriptionsNotAllowedCannotAddBecauseMultipleSubscriptionsNotAllowed booleanboolean Indica se l'utente corrente è idoneo per la sottoscrizione al prodotto per quanto riguarda l'autorizzazione a effettuare più sottoscrizioni.Whether the current user is eligible to subscribe to this product with regard to multiple subscriptions being allowed or not.

Dati del modello di esempioSample template data

{  
    "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  
}  

Passaggi successiviNext steps

Per ulteriori informazioni sull'uso dei modelli, vedere Come personalizzare il portale per sviluppatori di Gestione API usando i modelli.For more information about working with templates, see How to customize the API Management developer portal using templates.