O DataService Studio permite criar APIs de dados a partir de fontes de dados existentes por meio da interface visual sem código ou do editor de código. Este tutorial aborda como ativar o API Gateway, criar um processo de negócios e gerar e configurar uma API.
Para o API Gateway nativo da cloud, consulte {{XREF_0}}.
Pré-requisitos
Você já configurou uma fonte de dados na página . Para mais detalhes, consulte {{XREF_1}}.
O serviço de dados exige um grupo de recursos. Em ambientes de produção, recomendamos o uso de um grupo de recursos serverless. Para mais detalhes, consulte {{XREF_2}}.
DataService Studio
Faça login no console do DataWorks. Na região desejada, clique em no painel de navegação à esquerda. Selecione um workspace na lista suspensa e clique em Go to DataService Studio.
Etapa 1: Configurar o API Gateway
Antes de criar um processo de negócios, conclua as seguintes tarefas no console do API Gateway.
Acesse o console do API Gateway e ative o API Gateway.
-
No console do API Gateway, crie um grupo de APIs. Um grupo de APIs é um conjunto de APIs para um recurso ou cenário específico, funcionando como a unidade básica de gerenciamento de APIs no API Gateway.
ImportanteA região do API Gateway deve corresponder à região do workspace do DataWorks.
Etapa 2: Criar um processo de negócios
Os processos de negócios organizam o desenvolvimento de APIs por domínio de negócio. Cada processo deve estar vinculado a um grupo de APIs, sendo obrigatório criar um antes de gerar uma API.
Na página Service Development, clique no ícone
e selecione Create Workflow.-
Na caixa de diálogo Create Workflow, configure os parâmetros.
Parâmetro
Descrição
Workflow Name
O nome deve ser exclusivo dentro do workspace. Deve ter entre 4 e 50 caracteres, começar com uma letra ou caractere chinês, e pode conter caracteres chineses, letras, dígitos e sublinhados (_).
API grouping
Selecione o grupo de APIs criado na Etapa 1. Para criar um novo grupo, acesse o console do API Gateway.
ImportanteApós vincular um processo de negócios a um grupo de APIs, não é possível alterar o grupo. Escolha-o com atenção.
Business Description
Insira uma descrição para o processo de negócios. A descrição não pode exceder 180 caracteres.
Clique em Determine. Após a criação do processo de negócios, você poderá visualizá-lo na lista Workflow.
Etapa 3: Escolher o modo da API
O DataService Studio oferece suporte ao modo assistente e ao modo script. Ambos compartilham o mesmo processo básico de configuração, mas diferem na forma de construção da lógica de consulta.
Comparação dos modos
|
Categoria de recurso |
Recurso |
Modo assistente |
Modo script |
|
Objeto de consulta |
Consulta a uma única tabela de dados em uma única fonte de dados |
Suportado |
Suportado |
|
JOINs de múltiplas tabelas em uma única fonte de dados |
Não suportado |
Suportado |
|
|
Condições de consulta |
Consultas de igualdade, intervalo e correspondência aproximada |
Suportado mediante seleção de operador |
Suportado via definição de SQL personalizado |
|
Condições dinâmicas MyBatis (como parâmetros opcionais) |
Não suportado |
Suportado no Modo SQL Avançado |
|
|
Resultados da consulta |
Retorno de valores brutos de campos e paginação de resultados |
Suportado |
Suportado |
|
Operações matemáticas e funções de agregação |
Não suportado |
Suportado |
Como escolher o modo
Use o modo assistente: ideal para consultas simples em uma única tabela de dados, como filtros de igualdade, correspondência aproximada ou intervalo. Este modo oferece uma interface visual e sem código para configuração da API.
Use o modo script: recomendado para consultas avançadas, como JOINs de múltiplas tabelas, subconsultas aninhadas, agregações ou condições dinâmicas com parâmetros opcionais.
É possível converter uma API do modo assistente para o modo script, mas essa alteração não pode ser revertida. Para mais informações, consulte {{XREF_3}}.
Etapa 4: Gerar uma API
-
Na página Service Development, passe o mouse sobre o ícone
e clique em .Alternativamente, abra o processo de negócios relevante, clique com o botão direito em API e escolha .
-
Na caixa de diálogo Generate API, configure os parâmetros.
Parâmetro
Descrição
API Mode
Selecione Wizard Mode ou Code Editor. Se optar pelo modo script, também será necessário selecionar um SQL Mode (Basic SQL ou Advanced SQL).
-
Basic SQL: Escreva a lógica de consulta usando sintaxe SQL básica.
-
Advanced SQL: Escreva a lógica de consulta usando sintaxe SQL com suporte a tags MyBatis. As tags suportadas incluem if, choose, when, otherwise, trim, foreach e where.
API Name
O nome pode conter caracteres chineses, letras, dígitos e sublinhados (_). Deve começar com uma letra ou caractere chinês e ter entre 4 e 50 caracteres.
APIPath
O caminho do endpoint da API. Trata-se do caminho da solicitação relativo ao host do serviço, como /user. O caminho pode conter letras, dígitos, sublinhados (_) e hifens (-). Deve começar com uma barra (/) e ter até 200 caracteres.
Protocol
Suporta HTTP e HTTPS.
Para chamar a API via HTTPS, é necessário publicá-la no API Gateway, vincular um domínio personalizado e fazer upload de um certificado SSL no console do API Gateway. Para mais informações, consulte {{XREF_4}}.
Request Method
Suporta GET e POST.
NotaSe selecionar GET, a posição do parâmetro de solicitação deve ser QUERY. Se selecionar POST, essa posição pode ser QUERY ou Body.
Response Type
Somente JSON é suportado.
Visible Scope
-
Work space: A API fica visível para todos os membros do workspace atual.
-
Private: A API fica visível apenas para seu proprietário. Atualmente, não há suporte para autorizar outros usuários.
Tag
Selecione até cinco tags na lista. Cada tag pode ter até 20 caracteres. Para mais informações, consulte {{XREF_5}}.
Description
Insira uma breve descrição para a API. A descrição não pode exceder 2.000 caracteres.
Location
Selecione um processo de negócios existente para armazenar a API. A estrutura de caminho padrão é "processo de negócios/Nome do Processo de Negócios/API".
-
Clique em Determine para abrir a página de edição da API.
Etapa 5: Configurar a API
1. Selecionar uma fonte de dados e tabela
Clique duas vezes na API para abrir sua página de edição. Na área Table, configure parâmetros como Data Source Type, Data Source Name e Data Source Environment. Os parâmetros de configuração variam conforme o tipo de fonte de dados. Consulte a interface para verificar os parâmetros específicos.
É necessário configurar previamente uma fonte de dados em . A lista suspensa de tabelas de dados permite buscar pelo nome da tabela.
No modo script, selecione primeiro uma fonte de dados. Consultas JOIN com múltiplas tabelas só são permitidas dentro da mesma fonte de dados.
Em workspaces no modo padrão, utilize o parâmetro Data Source Environment para acessar fontes de dados nos ambientes de desenvolvimento ou produção. Para mais informações, consulte {{XREF_6}}.
Para fontes de dados MaxCompute, utilize o Acceleration Service do DataService Studio do DataWorks ou o recurso MCQA do MaxCompute para acelerar consultas. Para usar o serviço de aceleração, crie primeiro um item de aceleração. Para mais informações, consulte {{XREF_7}}.
2. Definir a lógica de consulta
A definição da lógica de consulta varia entre o modo assistente e o modo script.
Modo assistente: selecionar parâmetros
Ao selecionar uma tabela de dados, todos os seus campos aparecem automaticamente na área Select Parameters. Marque as caixas de seleção Set as Req Param e Set as Resp Param para os campos necessários.
Para ordenar os resultados da consulta, clique no botão Sort ao lado de um campo para adicioná-lo à lista de ordenação. É possível adicionar vários campos à lista. O número de sequência determina a prioridade, onde números menores indicam maior prioridade. Ajuste a prioridade usando os botões Move Up e Move Down. Para cada campo, selecione Ascending order ou Descending order.
Modo script: escrever SQL de consulta
Na área Edit Query SQL, insira uma instrução SQL de consulta.
Modo Basic SQL: Use ${paramName} para marcar parâmetros de solicitação. Os campos após SELECT são parâmetros de resposta, e o ${param} na cláusula WHERE é um parâmetro de solicitação.
Siga estas regras ao escrever instruções SQL:
Consultas a tabelas únicas, consultas JOIN com múltiplas tabelas e consultas aninhadas dentro da mesma fonte de dados são suportadas.
Múltiplas instruções SQL, comentários e sintaxes que não sejam SELECT, como
INSERT,UPDATEouDELETE, não são suportados.SELECT *não é suportado. Especifique explicitamente as colunas a serem consultadas.Se um nome de coluna incluir um prefixo de tabela (por exemplo, t.name), atribua um alias a ele (por exemplo, t.name as name). Também é obrigatório atribuir um alias para funções de agregação.
Não há suporte para colocar ${param} entre aspas. Para concatenar strings, use
concat('abc', ${xyz}, '123').O modo Basic SQL não permite definir parâmetros como opcionais.
O modo Advanced SQL suporta sintaxe de tags MyBatis (por exemplo, if, choose, when, otherwise, trim, foreach e where), permitindo implementar logicas de consulta complexas de forma flexível, como validação de valores nulos, iteração de múltiplos valores, consultas dinâmicas a tabelas e ordenação dinâmica. Para exemplos de código de cenários comuns, consulte {{XREF_8}}.
Ao usar caracteres especiais no modo Advanced SQL, faça o escape deles:
|
Caractere especial |
Caractere de escape |
Descrição |
|
> |
> |
Maior que |
|
>= |
>= |
Maior ou igual a |
|
< |
< |
Menor que |
|
<= |
<= |
Menor ou igual a |
|
& |
& |
E |
|
' |
' |
Aspas simples |
|
" |
" |
Aspas duplas |
3. Configurar parâmetros de solicitação
Clique em Request Parameters no painel direito da página de edição da API para configurar os parâmetros.
Antes de visualizar os resultados, defina o valor de amostra, o valor padrão e a descrição dos parâmetros da API.
Para obter melhor desempenho, utilize campos indexados como parâmetros de solicitação.
No modo Advanced SQL, o sistema não consegue analisar parâmetros automaticamente. Adicione manualmente todos os parâmetros de solicitação à lista com base no seu script SQL.
O modo assistente não permite criar um intervalo de valores para um campo usando dois parâmetros. Utilize o modo script para essa funcionalidade.
|
Parâmetro |
Descrição |
|
Parameter Name |
O nome pode conter letras, dígitos, sublinhados (_) e hifens (-). Deve começar com uma letra e ter até 64 caracteres. |
|
Bound Field |
Este parâmetro é visível apenas no modo assistente e é somente leitura por padrão. Ele está vinculado ao campo da tabela de dados selecionada. Para modificar o vínculo, use o modo script. |
|
Parameter Type |
Tipos suportados: STRING, INT, LONG, FLOAT, DOUBLE e BOOLEAN. |
|
Parameter Position |
QUERY ou BODY. Se selecionar BODY, defina o Content-Type. Os formatos suportados são JSON, XML e FORM. |
|
Operator |
Este parâmetro é visível apenas no modo assistente. Define o operador de comparação para o parâmetro. Os operadores suportados incluem: =, LIKE, IN, NOT IN, NOT LIKE, !=, >, <, >= e <=. Nota
Quando o tipo de fonte de dados é Table Store, apenas o operador = é suportado. |
|
Required |
Indica se o parâmetro é obrigatório nas chamadas da API. |
|
Sample Value |
Um valor de amostra para o parâmetro de solicitação. |
|
Default Value |
O valor padrão para o parâmetro de solicitação. |
|
Description |
Uma breve descrição do parâmetro de solicitação. |
4. Configurar parâmetros de resposta e paginação
Clique em Response Parameters no painel direito da página de edição da API para configurar o nome do parâmetro, tipo do parâmetro, valor de amostra e descrição. No modo Advanced SQL, adicione manualmente todos os parâmetros de resposta com base no seu script SQL.
Na área Advanced Settings, especifique se deseja ativar a Pagination for Return Results:
Desativada: A API retorna no máximo 2.000 registros por padrão.
Ativada: Defina o número máximo de registros por página na página Resource Group for DataService Studio com base no tipo de grupo de recursos.
Quando a paginação está ativada, o sistema adiciona automaticamente os seguintes parâmetros comuns:
Parâmetros de solicitação comuns: returnTotalNum (se deve retornar o número total de registros), pageNum (número da página atual) e pageSize (número de registros por página).
Parâmetros de resposta comuns: pageNum, pageSize e totalNum (número total de registros).
Se uma API não tiver parâmetros de solicitação, a paginação de resposta deve ser ativada.
No modo script, se uma instrução SQL contiver uma cláusula
limit, a cláusulalimitnão terá efeito quando a paginação estiver ativada. As configurações de paginação têm precedência.
5. Configurar filtros (opcional)
Para pré-processar parâmetros de solicitação ou pós-processar resultados de consulta, clique em Filter no painel de navegação direito. Marque a caixa de seleção Use Pre-filter ou Use Post-filter. Em seguida, selecione um Function Type e escolha uma função. É possível adicionar várias funções, que serão executadas na ordem em que foram adicionadas. Para mais informações sobre como criar e usar filtros, consulte {{XREF_9}} e {{XREF_10}}.
Para usar uma função Python como filtro, ative o DataWorks Professional Edition ou superior e utilize um grupo de recursos de serviço público.
Para usar uma função Aviator como filtro, não há restrição quanto à edição do DataWorks, mas é necessário usar um grupo de recursos de serviço exclusivo.
Se uma função não aparecer na lista suspensa de filtros, verifique se ela foi publicada. Para mais informações, consulte {{XREF_11}}.
6. Configurar grupos de recursos de serviço
No painel de navegação direito, clique em Resource Group for DataService Studio para configurar o tipo de grupo de recursos para a API.
Utilize um Exclusive Resource Group for DataService Studio ou um Shared Resource Group for DataService Studio. Para um grupo de recursos de serviço exclusivo, selecione um grupo de recursos alvo pelo nome. Um grupo de recursos de serviço público é mantido automaticamente pelo DataWorks.
Recomendamos usar um grupo de recursos de serviço público apenas para testes, não em ambiente de produção.
Se o grupo de recursos alvo não estiver na lista, acesse a página Grupos de Recursos para associar o grupo de recursos ao workspace.
Na área Environment Configuration, defina a Memory, o Timeout e o Maximum Number of Data Records for a Single Request:
-
Tempo limite: O tempo limite não pode exceder 30.000 ms para instâncias compartilhadas do API Gateway, ou 90.000 ms para grupos de recursos de serviço exclusivo que usam instâncias dedicadas do API Gateway.
NotaO tempo de resposta da API depende do tempo de execução do SQL. Defina o valor de tempo limite alto o suficiente para acomodar isso e evitar falhas de solicitação devido a timeouts.
Número máximo de registros por página: Até 2.000 para um grupo de recursos de serviço público e até 10.000 para um grupo de recursos de serviço exclusivo. Não há limite para o número total de resultados que uma API pode retornar.
Etapa 6: Salvar e enviar
Clique no ícone
na barra de ferramentas para salvar a API. O grupo de recursos selecionado entrará em vigor durante os testes.
Próximas etapas
-
Testar e publicar:
Após configurar a API, teste-a. Para mais informações, consulte {{XREF_12}}.
Após o teste ser bem-sucedido, clique em Submission no canto superior direito.
-
Na página de edição da API, clique em Version no painel de navegação direito. Localize a versão que deseja publicar e clique em Request to Publish. Na página de solicitação, o tipo de aplicativo será definido por padrão como Publish API in DataService Studio. Insira um Application Reason e clique em Requested Permissions para enviar sua solicitação.
NotaSe o seu workspace no DataWorks Approval Center estiver configurado com um fluxo de trabalho de aprovação, a solicitação deverá ser aprovada antes que a API possa ser publicada. Para mais informações, consulte {{XREF_13}}.
Após a publicação da API, as configurações do grupo de recursos para o DataService Studio aplicar-se-ão a todas as chamadas da API.
Gerenciar APIs: Na página Service Development, gerencie as APIs clonando-as ou excluindo-as da árvore de diretórios. Na página Service Management, expanda a lista de APIs para visualizar detalhes das APIs publicadas. Para mais informações, consulte {{XREF_14}}.
Apêndice: Do modo assistente para o modo script
Converta uma API do modo assistente para o modo script seguindo estes passos:
Na página Service Development, expanda o que contém a API alvo.
Clique duas vezes no nome da API para abrir sua página de edição.
Na barra de ferramentas, clique no ícone
.-
Na caixa de diálogo Prompt, clique em Determine.
AvisoA conversão é permitida apenas do modo assistente para o modo script.
Esta ação é irreversível.
Apêndice: Exemplos de SQL Avançado (MyBatis)
Os exemplos abaixo demonstram padrões comuns de consulta usando SQL avançado no modo script. Substitua os nomes das tabelas, campos e condições pelos seus próprios.
Exemplo 1: Controlar a ordem de classificação
O valor de var determina a ordem de classificação.
select col01,col02
from table_name
<choose>
<when test='var == 1'>
order by col01
</when>
<when test='var == 2'>
order by col02
</when>
<when test='var == 3'>
order by col01,col02
</when>
<when test='var == 4'>
order by col02,col01
</when>
</choose>
Parâmetro de solicitação: var (Tipo: INT, Obrigatório). Parâmetros de resposta: col01, col02.
Exemplo 2: Consultar tabelas diferentes
Valores diferentes de var determinam qual tabela consultar.
select col01
from
<choose>
<when test='var == 1'>
table_name01
</when>
<when test='var == 2'>
table_name02
</when>
</choose>
Exemplo 3: Cláusula WHERE dinâmica
As condições de consulta são geradas dinamicamente com base no fato de a coleção list estar vazia ou não. Se list não for nulo, uma condição de consulta que inclui o valor do campo area será gerada.
SELECT area_id, area, amount
FROM table_name
<where>
<if test='list!=null'>
area in
<foreach collection="list" open="(" close=")" separator="," item="area">
#{area}
</foreach>
</if>
</where>
Parâmetro de solicitação: list (Tipo: STRING_LIST, Obrigatório, Exemplo: Beijing,Hangzhou). Parâmetros de resposta: area_id, area e amount.
Apêndice: Melhor prática — parâmetros opcionais
Alguns parâmetros de solicitação podem precisar ser opcionais — se nenhum valor for passado, o parâmetro é excluído das condições de consulta. Esta seção usa a tabela ods_user_info_d para demonstrar a definição de uid como obrigatório e gender como opcional.
|
Parâmetro |
Tipo |
Descrição |
|
uid |
INT |
ID do usuário |
|
gender |
STRING |
Gênero |
|
age_range |
STRING |
Faixa etária |
|
zodiac |
STRING |
Signo do zodíaco |
Parâmetros opcionais no modo assistente
No modo assistente, selecione uid e gender como parâmetros de solicitação na área Select Parameters, depois vá para o painel Request Parameters à direita e desmarque a caixa de seleção Required para o parâmetro gender.
Marcado: É obrigatório fornecer um valor para o parâmetro ao chamar a API. Caso contrário, uma exceção de validação de parâmetro será lançada.
Desmarcado: Você decide se passa ou não um valor para o parâmetro. Se nenhum valor for passado, o parâmetro não será incluído como condição de consulta.
Exemplos de Chamadas:
-
Cenário 1: Valores são passados tanto para
uidquanto paragender. O sistema executa a seguinte consulta:SELECT uid, gender, age_range, zodiac FROM ods_user_info_d WHERE uid = 0016359810821 AND gender = 'Female'; -
Cenário 2: Um valor é passado para
uid, mas nenhum valor é passado paragender. O sistema executa a seguinte consulta:SELECT uid, gender, age_range, zodiac FROM ods_user_info_d WHERE uid = 0016359810821;
Parâmetros opcionais no modo script
O Basic SQL não consegue implementar uma lógica verdadeira de parâmetros opcionais. Mesmo que você desmarque a caixa de seleção Required, o sistema realizará uma consulta com parameter = null se o parâmetro for omitido. Isso geralmente retorna um conjunto de resultados vazio em vez de ignorar a condição. Para implementar parâmetros opcionais, use o modo advanced SQL.
No modo advanced SQL, use a tag MyBatis <if> para implementar lógica condicional:
SELECT uid, gender, age_range, zodiac
FROM ods_user_info_d
<where>
<if test='gender!=null'>
gender = ${gender}
</if>
and uid = ${uid}
</where>
A tag
<where>lida automaticamente com a palavra-chave WHERE e remove prefixos AND ou OR redundantes.A tag
<if test='gender!=null'>adiciona a condição à consulta apenas se você passar um valor não nulo para o parâmetrogender.Após configurar a instrução SQL, adicione manualmente os parâmetros
uidegenderno painel Request Parameters à direita e desmarque a caixa de seleção Required para o parâmetrogender.
O comportamento é o mesmo do modo assistente: a condição gender é aplicada quando um valor é passado e ignorada quando omitido.
Configuração de parâmetros opcionais
|
Método |
Implementação |
Complexidade |
Casos de uso |
|
modo assistente |
Desmarque a caixa "Required". |
Baixa |
Consultas simples a tabelas únicas |
|
modo script (basic SQL) |
Não suportado |
— |
— |
|
modo script (advanced SQL) |
Envolva a condição em uma tag |
Média |
JOINs de múltiplas tabelas e consultas complexas |