Share via


Modelos de produto no Azure Gestão de API

O Azure Gestão de API permite-lhe personalizar o conteúdo das páginas do portal do programador através de um conjunto de modelos que configuram os respetivos conteúdos. Ao utilizar a sintaxe DotLiquid e o editor à sua escolha, como o DotLiquid para Designers, e um conjunto fornecido de recursos de Cadeia localizados, recursos de Glyph e controlos de Página, tem grande flexibilidade para configurar o conteúdo das páginas conforme entender através destes modelos.

Os modelos nesta secção permitem-lhe personalizar o conteúdo das páginas de produto no portal do programador.

Nota

Os modelos predefinidos de exemplo estão incluídos na seguinte documentação, mas estão sujeitos a alterações devido a melhorias contínuas. Pode ver os modelos predefinidos em direto no portal do programador ao navegar para os modelos individuais pretendidos. Para obter mais informações sobre como trabalhar com modelos, veja How to customize the Gestão de API developer portal using templates (Como personalizar o portal do programador Gestão de API com modelos).

Nota

O seguinte conteúdo da documentação é sobre o portal de programador preterido. Pode continuar a utilizá-lo, como habitualmente, até à descontinuação em outubro de 2023, altura em que será removido de todos os serviços de Gestão de API. O portal preterido só receberá atualizações de segurança críticas. Veja mais detalhes nos artigos seguintes:

Disponibilidade

Importante

Esta funcionalidade está disponível nos escalões Premium, Standard, Básico e Programador da Gestão de API.

Para obter a disponibilidade de funcionalidades nas camadas v2 (pré-visualização), veja a descrição geral das camadas v2.

Lista de produtos

O modelo de Lista de produtos permite-lhe personalizar o corpo da página da lista de produtos no portal do programador.

Lista de produtos

Modelo predefinido

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

Controlos

O Product list modelo pode utilizar os seguintes controlos de página.

Modelo de dados

Propriedade Tipo Description
Paginação Entidade de paginação . As informações de paginação da coleção de produtos.
Filtragem Entidade de filtragem . As informações de filtragem da página da lista de produtos.
Produtos Coleção de entidades de Produto . Os produtos visíveis para o utilizador atual.

Dados de modelo de exemplo

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

Produto

O modelo Produto permite-lhe personalizar o corpo da página do produto no portal do programador.

Página de produto do portal do programador

Modelo predefinido

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

Controlos

O Product list modelo pode utilizar os seguintes controlos de página.

Modelo de dados

Propriedade Tipo Description
Produto Produto O produto especificado.
IsDeveloperSubscribed boolean Se o utilizador atual está subscrito a este produto.
SubscriptionState número O estado da subscrição. Os estados possíveis são:

- 0 - suspended – a subscrição está bloqueada e o subscritor não pode chamar as APIs do produto.
- 1 - active – a subscrição está ativa.
- 2 - expired – a subscrição atingiu a data de expiração e foi desativada.
- 3 - submitted – o pedido de subscrição foi feito pelo programador, mas ainda não foi aprovado ou rejeitado.
- 4 - rejected – o pedido de subscrição foi negado por um administrador.
- 5 - cancelled – a subscrição foi cancelada pelo programador ou administrador.
Limites matriz Esta propriedade foi preterida e não deve ser utilizada.
DelegatedSubscriptionEnabled boolean Se a delegação está ativada para esta subscrição.
DelegatedSubscriptionUrl string Se a delegação estiver ativada, o URL da subscrição delegada.
IsAgreed boolean Se o produto tiver termos, se o utilizador atual concordou com os termos.
Subscrições Coleção de entidades de resumo da subscrição . As subscrições do produto.
Apis Coleção de entidades de API . As APIs neste produto.
CannotAddBecauseSubscriptionNumberLimitReached boolean Se o utilizador atual é elegível para subscrever este produto no que diz respeito ao limite da subscrição.
CannotAddBecauseMultipleSubscriptionsNotAllowed boolean Se o utilizador atual é elegível para subscrever este produto no que diz respeito à permissão ou não de várias subscrições.

Dados de modelo de exemplo

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

Passos seguintes

Para obter mais informações sobre como trabalhar com modelos, veja How to customize the Gestão de API developer portal using templates (Como personalizar o portal do programador Gestão de API com modelos).