#REST API

1 Seguidor · 67 Postagens

A transferência representacional de estado (REST) é um estilo de arquitetura de software que define um conjunto de restrições a ser usado para criar web services. Os web services que estão em conformidade com o estilo de arquitetura REST, chamados de RESTful Web Services (RWS), fornecem interoperabilidade entre sistemas de computador na Internet. Os RESTful web services permitem que os sistemas solicitantes acessem e manipulem representações textuais de recursos web usando um conjunto uniforme e predefinido de operações sem estado. Outros tipos de web services, como SOAP web services, expõem seus próprios conjuntos arbitrários de operações.

Saber mais.

Artigo Eduard Lebedyuk · Nov. 9, 2020 12m read

Neste artigo eu gostaria de falar sobre a abordagem de especificação primeiro (spec-first) para o desenvolvimento de APIs REST.

Embora o desenvolvimento de API REST com código primeiro (code-first) tradicional seja assim:

  • Escrever o código
  • Habilitando-o com REST
  • Documentando-o (como uma API REST)

A especificação primeiro (spec-first) segue os mesmos passo, mas ao contrário. Começamos com uma especificação, também usando-a como documentação, geramos uma aplicação REST padrão a partir dela e, finalmente, escrevemos alguma lógica de negócios.

Isso é vantajoso porque:

  • Você sempre tem uma documentação relevante e útil para desenvolvedores externos ou front-end que desejam usar sua API REST
  • A especificação criada em OAS (Swagger) pode ser importada em uma variedade de ferramentas permitindo edição, geração de cliente, gerenciamento de API, teste de unidade e automação ou simplificação de muitas outras tarefas
  • Arquitetura de API aprimorada.  Na abordagem de código primeiro (code-first), a API é desenvolvida método a método então um desenvolvedor pode facilmente perder o controle da arquitetura geral da API, no entanto, com a especificação primeiro (spec-first), o desenvolvedor é forçado a interagir com uma API a partir da posição de um consumidor de API, o que geralmente ajuda no design de uma arquitetura melhor da API.
  • Desenvolvimento mais rápido - como todo código padrão é gerado automaticamente, você não terá que escrevê-lo, tudo o que resta é desenvolver a lógica de negócios.
  • Loops de feedback mais rápidos - os consumidores podem obter uma visão da API imediatamente e podem oferecer sugestões com mais facilidade, simplesmente modificando as especificações Vamos desenvolver nossa API em uma abordagem de especificação primeiro!
0
0 1227
Artigo Claudio Devecchi · Out. 13, 2020 15m read

##Introdução

Estamos na era da economia multi-plataforma, e as API's são a "liga" deste cenário digital. Sendo tão importantes, elas são encaradas por desenvolvedores como um serviço ou produto a ser consumido. Assim sendo, a experiência na sua utilização é um fator crucial de sucesso.

Visando melhorar esta experiência, padrões de especificação, como o OpenAPI Specification (OAS) estão cada vez mais sendo adotados no desenvolvimento de API's RESTFul.

##O que é o IRIS ApiPub?

2
2 846
Artigo Danusa Calixto · Set. 1, 2023 5m read

Olá, comunidade!

Com certeza, todos vocês já ouviram algo sobre a Salesforce – a empresa e seu software. Neste artigo, vamos nos concentrar na conectividade com o software CRM – Salesforce CRM. De uma forma muito genérica, o Salesforce CRM tem a capacidade de gerenciar as interações com os clientes de uma organização por meio de vários métodos, como telefonemas, consultas por e-mail, comunidades, mídias e redes sociais. Diz-se que o Salesforce lida com todos os relacionamentos com os clientes - com foco nos processos de vendas, suporte e marketing. Este serviço/software está disponível na nuvem.

Como seria bom se pudéssemos nos conectar ao Salesforce a partir do nosso ambiente InterSystems IRIS ou qualquer outro produto InterSystems.

0
0 611
Artigo José Hélington Pires da Cruz · Mar. 31, 2021 2m read

Por padrão, o InterSystems IRIS expõe seus endpoints usando http, mas pode ser necessário executar https em seu ambiente de desenvolvimento e / ou obter acesso público à Internet para seu aplicativo. Você pode comprar ou obter um certificado e configurar um gateway, gastando muitas horas ou usando um ótimo serviço público chamado ngrok. Siga os passos:

1 - Execute seu aplicativo, usarei o template FHIR como amostra, veja:

1.1 baixe o aplicativo: git clone https://github.com/intersystems-community/iris-fhir-template.git

1.2 vá para o diretório do aplicativo: cd iris-fhir-template

1.

0
0 359
Artigo Yuri Marx · Fev. 5, 2022 1m read

Se sua API REST precisar retornar um arquivo para o download do cliente, este é o código-fonte que você poderia escrever (PS: extraído da pergunta https://community.intersystems.com/post/download-file-rest e suas respostas) :

Set%response.ContentType="image/jpeg"

Do%response.SetHeader("Content-Disposition","attachment;filename=""test.jpg""")

Set%response.NoCharSetConvert=1

Set%response.Headers("Access-Control-Allow-Origin")="*"


 

Setstream=##class(%Stream.FileBinary).%New()

Setsc=stream.LinkToFile("/opt/irisbuild/output/test.jpg")

Dostream.OutputToDevice()


 

SettSC=$$$OK

0
0 313
Artigo Jhonata Rebouças · Maio 1, 2021 4m read

O mesmo serviço com a possibilidade de receber várias consultas SQL diferentes e sempre entregar o resultado independente de quantas colunas distintas tenham essas diferentes consultas. Aqui demonstro como pode ser possível montar esse tipo de serviço utilizando o Service Bus da Intersystems.

Possível cenário (Desconsiderar o uso de um BI):

Vamos pensar em um painel real time onde iremos fornecer as informações de consumo de um material por região para o setor de compras e teremos as informações do nome do produto, fabricante e quantidade por exemplo.

0
1 291
Artigo Lorenzo Scalese · Fev. 1, 2021 8m read

Olá comunidade,

  O OpenAPI-Client Gen acaba de ser lançado, este é um aplicativo para criar um cliente de produção de interoperabilidade IRIS a partir da especificação Swagger 2.0.

  Em vez da ferramenta existente ^%REST que cria um aplicativo REST do lado do servidor, o OpenAPI-Client Gen cria um modelo de cliente de produção de interoperabilidade REST completo.

 

Instalação por ZPM:

zpm "install openapi-client-gen"

  Como gerar produção a partir de um documento Swagger?   É muito simples.

Abra um terminal e execute:

Set sc = ##class(dc.openapi.client.Spec).
0
0 249
Artigo Vinicius Maranhao Ribeiro de Castro · Dez. 21, 2020 4m read

Nesta série de artigos de três partes, é mostrado como você pode usar o IAM para simplesmente adicionar segurança, de acordo com os padrões do OAuth 2.0, a um serviço não autenticado anteriormente implantado no IRIS.

Na primeira parte, foram fornecidos alguns conhecimentos sobre o OAuth 2.0, juntamente com algumas definições e configurações iniciais do IRIS e IAM, para facilitar a compreensão de todo o processo de proteção dos seus serviços.

0
0 248
Artigo Eduard Lebedyuk · Nov. 19, 2021 2m read

Recentemente eu precisei gerar uma especificação Swagger a partir de classes persistentes e seriais, então estou publicando meu código (ainda incompleto - você ainda precisa  resolver detalhes específicos do aplicativo mas é um começo). Ele está disponível aqui.

Digamos que você tem estas classes:



Classes

2
0 243
Artigo Vinicius Maranhao Ribeiro de Castro · Out. 7, 2020 4m read

Introdução

Hoje em dia existem muitas aplicações que estão usando o Open Authorization framework (OAuth) para acessar recursos de todos os tipos de serviços de maneira segura, confiável e eficiente. O InterSystems IRIS já é compatível com a estrutura OAuth 2.0, na verdade, há um ótimo artigo na comunidade sobre OAuth 2.0 e InterSystems IRIS no seguinte link aqui.

0
1 217
Artigo Danusa Calixto · Maio 9, 2023 10m read

Prefácio

O InterSystems IRIS a partir da versão 2022.2 inclui a capacidade de autenticar uma API REST usando JSON web tokens (JWTs). Esse recurso aprimora a segurança ao limitar quando e com que frequência as senhas são transferidas pela rede, além de definir um tempo de expiração para o acesso.

O objetivo deste artigo é servir como um tutorial de como implementar uma API REST simulada usando o InterSystems IRIS e bloquear o acesso a ela com JWTs.

OBSERVAÇÃO NÃO sou uma desenvolvedora. Não faço alegações sobre a eficiência, escalabilidade ou qualidade das amostras de código que uso neste artigo.

0
0 207
Artigo Julio Esquerdo · Set. 21, 2023 10m read

Olá,

No post anterior sobre o uso do Grafana com o IRIS (https://pt.community.intersystems.com/post/usando-o-grafana-com-o-iris-…) utilizamos classes para armazenar nossas informações. Porém sabemos que o IRIS tem uma poderosa forma de armazenamento chamada de globais, que é muito utilizada em sistemas legados.

Vamos imaginar que nosso sistema de vendas é desenvolvido utilizando este mecanismo de armazenamento.

0
0 195
Artigo Yuri Marx · Nov. 30, 2021 3m read

O XData (https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GOBJ_XDATA) é um recurso poderoso para definir informações de documentação e metadados para classes e métodos. A classe% CSP.REST usa XDATA para mapear chamadas REST(https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GREST_csprest), portanto, neste artigo, você verá como usar XData em seus aplicativos como código, não apenas como documentação.

Quando você escreve comentários / definições XData, o IRIS os armazena em %Dictionary.ClassDefinition (para classes) e %Dictionary.

0
0 187
Artigo Cristiano Silva · Maio 26, 2023 6m read

Quantas vezes nos deparamos em reconstruir, copiar, colar adpatar, Businesss Operations que fazem chamadas para serviços REST, e apenas adaptamos uma ou outra parte do código final. Isso incomada e muito. Para resolver esse nosso incoveniente apresento para vocês Interopway REST, um conjunto de classes (um micro framework) que nos permite apenas adicionar o Business Operation à Production e  utilizar.

O projeto está hospedado no github, https://github.com/cristianojs/interopway_rest, é aberto e estamos aceitando colaborações.

Vamos entender como isso funciona.

2
1 180
Artigo Luca Ravazzolo · Out. 6, 2020 4m read

Olá a todos,

Com este artigo eu gostaria de mostrar como o Sistema de Alerta e Monitoramento (ou SAM para abreviar) pode ser configurado de forma fácil e dinâmica. O caso de uso pode ser o de um pipeline de provisionamento de CI/CD, rápido e ágil, onde você deseja executar seus testes unitários mas também seus testes de estresse e, você gostaria de ver rapidamente se esses testes foram bem-sucedidos ou como eles estão estressando os sistemas e sua aplicação (a API SAM é extensível com backend do InterSystems IRIS possibilitando a sua implementação de APM).

0
0 179
Artigo Danusa Calixto · jan 11, 2024 3m read

Sejam todos bem-vindos!

Neste breve artigo, quero apresentar um exemplo de uso que vários de vocês que trabalham com o IRIS como back-end para seus web applications devem ter enfrentado mais de uma vez: como enviar um arquivo do front-end para o servidor.

Em geral, a maneira mais simples que encontrei de realizar essa tarefa é transformar o arquivo do front-end para o formato Base64 e fazer uma chamada POST para o servidor anexando o Base64 obtido a uma mensagem JSON onde é indicado o nome do arquivo em um parâmetro e os dados codificados em outro.

0
0 168
Artigo Heloisa Paiva · Maio 29, 2023 10m read

Programação e suas linguagens

Ser um programador hoje em dia é basicamente uma versão nerd de ser um poliglota. Claro, a maioria de nós aqui na comunidade InterSystems "falamos ObjectScript". Entretando, eu acredito que essa não foi a primeira língua de muita gente. Por exemplo, eu nunca tinha ouvido falar nela antes de receber o treinamento apropriado na Innovatium.

A parte mais fascinante disso é que mesmo que sejamos aptos a aprender qualquer linguagem e nos tornar fluentes nela, sempre teremos nossas favoritas - as que nos sentimos mais confortáveis e familiares.

0
0 164
Artigo Danusa Calixto · Nov. 27, 2023 11m read

Eu estava tentando encontrar uma solução para conceder aos clientes acesso anônimo a determinados endpoints de API e também proteger outros endpoints na minha API REST. No entanto, ao definir um Web App, você só pode proteger o aplicativo inteiro, e não partes específicas.

Procurei respostas na comunidade, mas não encontrei nenhuma solução exata, exceto uma recomendação para criar dois Web Apps separados, um protegido e outro não. No entanto, na minha opinião, essa estratégia requer muito trabalho e cria um overhead de manutenção desnecessário.

0
0 155
Artigo Heloisa Paiva · Jul. 4, 2024 9m read

Integrar aplicações frontend de React com serviços backend como a base de dados IRIS através de APIs REST pode ser uma forma poderosa de contruir aplicações web robustas. No entanto, um obstáculo comum que os desenvolvedores costumam encontrar é o problema de Cross-Origin Resource Sharing (CORS), que pode impedir que o frontend acesse os recursos no backend devido a restrições de segurança impostas pelos navegadores web. Nesse artigo, exploraremos como abordar os problemas de CORS ao integrar aplicações web de React com serviços backend de IRIS.

0
0 135
Artigo Julio Esquerdo · Out. 14, 2024 4m read

Projeto 3 – Requisição REST

Vamos montar nossa próxima integração utilizando uma aplicação REST. Para tal vamos utilizar um BS que chamará o BP do nosso serviço demo (ver Primeira Integração). Vamos reaproveitar o serviço que então poderá ser chamado via SOAP ou REST. Teremos então dois BS que irão chamar o mesmo BP. A imagem abaixo ilustra essa arquitetura:

O primeiro passo vai ser criar um novo BS que não terá nenhum adaptador. Esse BS será chamado pela nossa aplicação REST que veremos mais a frente:

Class ws.rest.bs.Service Extends Ens.

0
0 127
Artigo Julio Esquerdo · Fev. 14, 2025 5m read

HTTP e HTTPS com API REST

Olá,

O protocolo HTTP permite a obtenção de recursos, como documentos HTML. É a base de qualquer troca de dados na Web e um protocolo cliente-servidor, o que significa que as requisições são iniciadas pelo destinatário, geralmente um navegador da Web.

As API REST se beneficiam deste protocolo para trocar mensagens entre cliente e servidor. Isso torna as APIs REST rápidas, leves e flexíveis. As API REST utilizam os verbos HTTP GET, POST, PUT, DELETE e outros para indicar as ações que desejam realizar.

0
0 119
Artigo Danusa Calixto · Abr. 5, 2024 6m read

Neste artigo, vou abordar o teste e a depuração dos aplicativos da Web Caché (principalmente REST) com ferramentas externas. A segunda parte abrange ferramentas de Caché.

Você escreveu um código do servidor e quer testar em um cliente ou já tem um aplicativo da Web e ele não funciona. É aqui que entra a depuração. Neste artigo, vou mostrar desde as ferramentas mais fáceis de usar (navegador) até as mais completas (analisador de pacotes). Porém, primeiro, vamos falar um pouco sobre os erros mais comuns e como eles podem ser resolvidos.

0
0 114
Artigo Danusa Calixto · Abr. 4, 2024 3m read

Olá, Desenvolvedores!

Suponha que você tenha uma classe persistente com dados e queira ter uma IU Angular simples para visualizar os dados e fazer operações CRUD.

Recentemente, @Alberto Fuentes descreveu como desenvolver uma IU Angular para seu aplicativo do InterSystems IRIS usando RESTForms2. 

Neste artigo, quero explicar a você como obter uma IU Angular simples para fazer operações CRUD e visualizar seus dados de classes do InterSystems IRIS automaticamente em menos de 5 minutos.

Vamos lá!

0
0 113
Artigo Heloisa Paiva · Fev. 17, 2025 6m read

Monitorar sua implantação do IRIS é crucial. Com a descontinuação do System Alert and Monitoring (SAM), uma solução moderna e escalável é necessária para obter insights em tempo real, detecção precoce de problemas e eficiência operacional. Este guia aborda a configuração do Prometheus e Grafana no Kubernetes para monitorar o InterSystems IRIS de forma eficaz.

Este guia pressupõe que você já tenha um cluster IRIS implantado usando o InterSystems Kubernetes Operator (IKO), que simplifica a implantação, integração e gerenciamento.


Por que Prometheus e Grafana?

0
0 99
Artigo Danusa Calixto · Abr. 5, 2024 11m read

Eu estava tentando encontrar uma solução para conceder aos clientes acesso anônimo a determinados endpoints de API e também proteger outros endpoints na minha API REST. No entanto, ao definir um Web App, você só pode proteger o aplicativo inteiro, e não partes específicas.

Procurei respostas na comunidade, mas não encontrei nenhuma solução exata, exceto uma recomendação para criar dois Web Apps separados, um protegido e outro não. No entanto, na minha opinião, essa estratégia requer muito trabalho e cria um overhead de manutenção desnecessário.

0
1 91
Artigo Danusa Calixto · Maio 26, 2023 5m read

Definindo o contexto

Suponha que você tenha as 2 classes persistentes a seguir habilitadas para JSON (ou seja, estende %JSON.Adaptor ou %pkg.isc.rest.model.adaptor)

Class Test.Employee Extends (%Persistent, %pkg.isc.rest.model.adaptor) {
  Parameter RESOURCENAME = "employee";
  Parameter firstName As %String;
  Parameter lastName As %String;
  Relationship projects As Test.Project [ Cardinality = many, Inverse = employee) ];
}

Class Test.Project Extends (%Persistent, %pkg.isc.rest.model.adaptor) {   Parameter RESOURCENAME = "project";   Parameter name As %String;   Relationship employee As Test.

0
0 89