#Open Exchange

0 Seguidores · 139 Postagens

As soluções para a Plataforma de Dados InterSystems, o Open Exchange, é uma galeria de soluções de software, ferramentas, e frameworks que foram desenvolvidos com a Plataforma de Dados InterSystems (Caché, Ensemble, HealthShare, InterSystems IRIS, InterSystems IRIS for Health) ou destinam-se a ajudar no desenvolvimento, implantação e suporte as soluções construídas com a Plataforma de Dados InterSystems.

Você pode usar qualquer um dos recursos ou pode publicar sua própria ferramenta, exemplo de tecnologia ou solução.

Descubra o Open Exchange.

Anúncio Angelo Bruno Braga · Jun. 22, 2021

Olá Comunidade,

Estamos gratos em convidar todos os desenvolvedores para o Webinar de Lançamento do Concurso de Inteligência Artificial InterSystems! O tópico deste webinar é dedicado ao Concurso de Programação de Inteligência Artificial InterSystems.

Durante o webinar, nós iremos demonstrar como carregar dados no IRIS, como utilizar ODBC/JDBC e REST e como utilizar as funcionalidades especiais de Inteligência Artificial e Machine Learning do IRIS: IntegratedML, DataRobot, R Gateway, Embedded Python, PMML.

Data & Horário: Segunda-feira, 28 de Junho June 28 — 12:00 horário de brasília

Palestrantes:  
🗣 @Aleksandar Kovacevic, InterSystems Sales Engineer
🗣 @Théophile Thierry, InterSystems Intern
🗣 @Bob Kuszewski, Product Manager - Developer Experience, InterSystems  
🗣 @Evgeny Shvarov, InterSystems Developer Ecosystem Manager

0
0 86
Anúncio Angelo Bruno Braga · Jun. 16, 2021

Olá Comunidade,

Nós queremos ouvir vocês ! Nos falem a respeito de nosso último Concurso de Programação Acelerador FHIR da InterSystems! Respondam por favor algumas perguntas para que possamos melhorar nossos concursos.

👉 Pesquisa rápida: Pesquisa do Concurso de Programação Acelerador FHIR da InterSystems


0
0 63
Artigo ROBSON SERPA DA ROSA · Jun. 15, 2021 2m read

Há várias semanas, estou criando comentários no OEX. Portanto, gostaria de explicar a você os critérios que aplico para encontrar minhas classificações. Claro, cada revisor é uma pessoa independente e tem seus próprios critérios e sua própria opinião. E isso é bom e importante! Como Winston Churchill disse uma vez:

"Se 2 pessoas sempre têm a mesma opinião, então 1 delas é supérflua"

Existem pacotes que eu ignoro e não reviso

  • Anúncios de produtos puros
  • Pacotes onde os requisitos excedem meus recursos e capacidades (por exemplo, serviço de SMS externo, HW distribuído, instalações baseadas em nuvem, ..)
  • Pacotes em repositórios privados que não podem ser baixados.
  • Pacotes onde eu simplesmente não entendo qual é o assunto a alcançar

Eu verifico a descrição no OEX e / ou README.md no GitHub

  • Existe uma explicação do objetivo que eu entendo
  • Existe uma descrição de como instalar o pacote
  • Existe uma descrição de como testar / verificar o pacote Todos esses pontos podem ser abordados explicitamente ou por um link para um artigo na comunidade de desenvolvedores. Apenas Vazio não é aceito.

Se não houver Dockerfile nem docker-compose visível

  • Eu uso um modelo apropriado, instalo e inicio.
  • Então eu tento importar o pacote
  • Isso geralmente funciona também para pacotes que não são explicitamente dedicados ao IRIS.
  • Conforme mencionado anteriormente, a limpeza é simples:
  • Remova a imagem do docker, remova o repositório clonado. BINGO!

Agora tento exercitar os exemplos ou demonstrações

  • A existência de um UnitTest aumenta claramente a classificação
  • estão disponíveis conjuntos de dados de demonstração / teste e um guia sobre como usá-los eventualmente também existe um vídeo que mostra o comportamento esperado Uma dica para vídeos: Por favor, fale devagar e de forma simples e tão precisa quanto possível e faça pausas claras A maioria dos consumidores são falantes não nativos e podem ter dificuldades com complicadas construções linguais. O foco está na tecnologia, não na excelência do idioma.

Considere os pacotes de treinamento do ISC como exemplos de configuração profissional Experimentei também embalagens para os produtos Health *, mesmo falando "médico" não é tanto meu mundo. Mas fiquei surpreso ao aprender e atualizar muitos recursos em torno da tecnologia de base: Interoperabilidade e seu funcionamento e gestão e resolução de problemas.

0
0 34
Anúncio Rochael Ribeiro · Maio 31, 2021

Desenvolvedores,

Decidimos estender o período de inscrição para o InterSystems FHIR Accelerator Programming Contest e a votação começará apenas na quinta-feira, 3 de junho! O período de votação vai durar até domingo, 6 de junho.

Portanto, não se esqueça de apoiar as melhores soluções construídas usando o InterSystems IRIS FHIR Accelerator Service (FHIRaaS) no AWS.

➡️ Vote aqui de 3 a 6 de Junho!

How to vote and what's new?

0
0 71
Anúncio Angelo Bruno Braga · Maio 20, 2021

Olá Desenvolvedores,

O período de registro para o Concurso de Programação Acelerador FHIR da InterSystems está em pleno andamento! Nós convidamos todos os desenvolvedores FHIR para criar uma aplicação nova ou testar aplicações existentes utilizando o InterSystems IRIS FHIR Accelerator Service (FHIRaaS) on AWS

E agora você tem uma grande oportunidade para ganhar um acesso GRÁTIS ao FHIRaaS na AWS!  Então, para dar o primeiro passo para dominar o FHIRaaS, você precisa se registrar em nosso Portal FHIR Portal utilizando este link:

👉🏼 https://portal.trial.isccloud.io/account/signup

0
0 127
Anúncio Angelo Bruno Braga · Maio 6, 2021

Olá Comunidade,

Estamos felizes em convidar todos os desenvolvedores para o Webinar de Lançamento do Concurso de Programação Acelerador FHIR da InterSystems
 dedicado ao Concurso de Programação Acelerador FHIR da InterSystems !

Neste webinar iremos conversar e demonstrar como utilizar o Acelerador FHIR como serviço..

Data & Horário: Segunda-feira, 10 de Maio — 14:00 horário de Brasília

Palestrantes:  
🗣 @Evgeny Shvarov, Gerente do Ecossistema para Desenvolvedores da InterSystems
🗣 @Regilo Regilio Guedes de Souza, Executivo de Serviços InterSystems
🗣 @Anton Umnikov, Arquiteto de Soluções na Nuvem Sênior InterSystems
🗣 @Patrick Jamieson, Gerente de Produto InterSystems - Plataforma de Informática em Saúde

0
0 61
Anúncio Angelo Bruno Braga · Maio 5, 2021

Olá Comunidade,

Juntem-se à próxima competição de programação online da InterSystems:

🏆 Concurso de Programação Acelerador FHIR da InterSystems 🏆

Envie uma aplicação que utilize o InterSystems FHIR-as-a-service na AWS ou auxilie desenvolvendo soluções utilizando o Acelerador FHIR da plataforma de dados IRIS da InterSystems.

Duração: de 10 de Maio a 06 de Junho de 2021

Total em prêmios: US$8,750 


0
0 105
Anúncio Angelo Bruno Braga · Abr. 27, 2021

Olá Comunidade,

Nós estamos gratos em convidá-los para o encontro online com os ganhadores do concurso de Ferramentas de Desenvolvimento InterSystems !

Data & Horário: Sexta-feira, 30 de Abril de 2021 – 12:00 horário de Brasília

O que lhe espera neste encontro virtual ? 

  • A biografia de nossos ganhadores.
  • Pequenas demonstrações de suas aplicações.
  • Uma discussão aberta sobre as tecnologias utilizadas, bônus, perguntas e planos para os próximos concursos.

0
0 56
Artigo Henrique Dias · Abr. 25, 2021 2m read

Uma coisa interessante sobre informação é que sempre podemos descobrir algo novo.

Partindo com essa ideia em mente, nós criamos uma nova página, para exibir um pouco mais sobre o universo ZPM!

Para publicar uma aplicação no ZPM, o arquivo module.xml se faz necessário. Dentro desse arquivo, conseguimos extrair algumas informações que se mostraram bem úteis.

Utilizando o endpoint https://pm.community.intersystems.com/packages/{package}/{version}/manifest, nós extraímos 2 coisas: keywords/tags e dependências

Keywords/Tags

Nós conseguimos extrair as keywords para cada aplicação publicada no Package Manager (ZPM), as separamos e totalizamos para criar o gráfico de Word Cloud. Word Cloud

Dependências

E usando a outra tag <Dependencies>, nós pegamos todas as dependências para cada aplicação e criamos um diagrama Sankey para ilustrar como essas aplicações interagem entre si. Sankey Diagram

Demo

https://zpm-explorer.contest.community.intersystems.com/csp/irisapp/explorer.html

Se você curtiu o aplicativo, curte o que estamos fazendo na comunidade, por favor vote em zpm-explorer e nos ajude nessa jornada!

https://openexchange.intersystems.com/contest/current

0
0 134
Artigo Henrique Dias · Abr. 21, 2021 2m read

Fala galera,

@José Pereira e eu queremos falar sobre nosso novo projeto, ZPM Explorer, é uma interface gráfica para explorar e descobrir as grandes aplicações que estão disponíveis no InterSystems Package Manager.

A ideia

A ideia do ZPM Explorer é deixar a vida de todos mais fácil quando procurarem por aplicações que são oferecidas pelo ZPM. A cada dia mais e mais aplicações se juntam ao universo ZPM, então, porque não ajudar desenvolvedores e não desenvolvedores a tirarem proveito deste incrível universo?

A aplicação

ZPM é uma aplicação simples e poderosa, para isso tentamos traduzir a simplicidade em algo simples de usar e poderosa na forma de pesquisar, facilitando a vida das pessoas na hora de encontrar a solução ideal com um simples clique.

A página inicial do ZPM Explorer é uma tabela com os dados fornecidos pelo endpoint https://pm.community.intersystems.com/packages/-/all

Com os seguintes campos:

  • Name: nome da aplicação
  • Description: descrição do que a aplicação faz
  • Repository: link para o repositório Github
  • Version: versão atual da aplicação hospedada no Package Manager

Instalando novas aplicações

O uso da aplicação é simples, rápido e objetivo.

  1. Pesquisa a aplicação desejada
  2. Seleciona a aplicação
  3. Clique no botão "Install"
  4. Confirme se desejar instalar
  5. Pronto
  6. Agora é só correr para o abraço e tirar proveito da nova solução instalada

Gerenciando pacotes instalados

ZPM Explorer também oferece uma página para você fazer o gerenciamento das aplicações existentes, instaladas através do ZPM. Nessa página você pode atualizar, desinstalar e até mesmo usar um "wizard" para faciitar sua vida na hora de criar seu module.xml e mencionar as aplicações desejadas como dependentes.

Demo

https://zpm-explorer.contest.community.intersystems.com/csp/irisapp/explorer.html

Se você curtiu o aplicativo e acredita que merecemos seu voto, por favor, vote em zpm-explorer!

https://openexchange.intersystems.com/contest/current

0
0 196
Anúncio Angelo Bruno Braga · Abr. 19, 2021

Olá Desenvolvedores,

Esta semana é a semana de votação para o Concurso de Programação Intersystems: Ferramentas de Desenvolvimento! Então, é a hora de dar o seu voto para as melhores soluções construídas com a plataforma de dados InterSystems IRIS.

🔥 Você decide: VOTE AQUI 🔥

Como votar e o que tem de novo ?

0
0 71
Anúncio Angelo Bruno Braga · Mar. 23, 2021

Olá Comunidade!

Estamos felizes em convidar todos os desenvolvedores para o Webinar de Lançamento do Concurso de Programação Intersystems dedicado ao Concurso de Programação InterSystems: Ferramentas de Desenvolvimento !

Neste webinar iremos conversar a respeito dos tópicos esperados para este concurso e mostraremos como desenvolver, construir e implantar suas aplicações na Plataforma de Dados InterSystems IRIS.

Data & Horário: Segunda-feira, 29 de Março — 12:00 horário de Brasília

Palestrantes:  
🗣 @Evgeny Shvarov, Gerente do Ecossistema para Desenvolvedores da InterSystems

🗣  Time de Gerentes de Produtos InterSystems - fiquem ligados para a lista de palestrantes!


<--break->

0
0 45
Anúncio Angelo Bruno Braga · Mar. 17, 2021

Olá Desenvolvedores,

Vocês pediram e nós atendemos ! Estamos felizes em anunciar a próxima competição para desenvolvedores Intersystems !

Seja bem vindo ao: 

🏆 Concurso de Programação InterSystems: Ferramentas de Desenvolvimento 🏆

Envie uma aplicação que ajude a realizar um desenvolvimento mais rápido, que contribua com um código mais qualitativo, ajude nos testes, na implantação, no suporte ou no monitoramento de sua solução utilizando o InterSystems IRIS.

Duração: de 29 de Março a 25 de Abril de 2021

Premiação Total: US$ 8,500


0
0 124
Artigo Fabiano Sanches · Fev. 22, 2021 2m read

Estou feliz em anunciar que liberamos recentemente nosso segundo Starter Pack. Este é um caso de uso para indústria de mineração e, o anterior, havia sido para IoT (Internet das Coisas) em manufatura (OEE - Operational Equipment Effectiveness).

Mas o que isso significa, exatamente?

InterSystems IRIS Starter Packs (agradeço ao Joe Lichtenberg que ajudou com este texto)

0
0 1026
Anúncio Angelo Bruno Braga · Fev. 10, 2021

Olá Desenvolvedores!

Aqui estão os bônus tecnológicos para o Concurso de Programação InterSystems Grand Prix que irão adicionar pontos à votação.

Grupo

Bônus

Pontos

Gerais

Docker

2

ZPM

2

Teste Unitário

2

APIs e linguagens

APIs REST

2

ODBC/JDBC

2

Uso de Python Embutido

4

APIs Nativas em Java, Python, .NET e node.js

3

Multi-modelo

Globais (chave-valor)

2

SQL

2

Objeto

2

Novo Modelo

3

Analytics

IRIS BI

2

IRIS NLP

2

InterSystems Reports

3

AI/ML

Integrated ML

4

Gateway Python ou Julia

3

Interoperabilidade

BPL

3

Adaptador Customizado

2

PEX

4

Mecanismo de Workflow

2

FHIR

APIs REST para Servidor FHIR

3

Uso do Esquema FHIR SQL

2

Transformação entre Padrões de Saúde

3

Total

 

58

Abaixo estão os detalhes e links úteis para todos os bônus tecnológicos.

0
0 61
Anúncio Angelo Bruno Braga · Fev. 4, 2021

Olá Desenvolvedores,

É um prazer convidá-los, a todos, para o nosso Webinar de lançamento do Concurso InterSystems Grand Prix!

O tópico deste webinar é dedicado ao nosso mega Concurso Grand Prix. Convidamos vocês a utilizarem nossos vários recursos e tecnologias como  o IntegratedML, Native API, multi-modelo, analytics and NLP, Open API e Interoperabilidade e IKO.

Neste webinar falaremos sobre os os tópicos esperados dos participantes e mostraremos como desenvolver, construir e implantar suas aplicações na Plataforma de Dados InterSystems IRIS.

Data & Horário: Segunda-feira, 8 de Fevereiro — 12:00 horário de Brasília

Palestrantes:  
🗣 @Evgeny Shvarov, Gerente do Ecossistema para Desenvolvedores da InterSystems

E alguns de nossos Gerentes de Produtos ... mantenha-se atento às novidades !


<--break->

0
0 53
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).generateApp(<applicationName>, <Your Swagger 2.0 document>>)

  O primeiro argumento é o pacote de destino onde as classes de produção serão geradas. Ele deve ser um nome de pacote válido e não existente.
O segundo, é o documento Swagger. Estes valores são aceitos:
  1) File path.
2) %DynamicObject.
3) URL.
  A especificação deve estar no formato JSON.
  Se sua especificação usa o formato YAML, ela pode ser facilmente convertida em JSON com ferramentas on-line como onlineyamltools.com
  Exemplo:

Set sc = ##class(dc.openapi.client.Spec).generateApp("petshop", "https://petstore.swagger.io:443/v2/swagger.json")
Write "Status : ", $SYSTEM.Status.GetOneErrorText(sc)

  Dê uma olhada no código gerado, podemos ver muitas classes, divididas em muitos subpacotes:  

  • Business Services: petshop.bs
  • Business Operations: petshop.bo
  • Business Processes: petshop.bp
  • Aplicação REST Proxy: petshop.rest
  • Ens.Request e Ens.Response: petshop.msg
  • Objeto de entrada ou saída analisado: petshop.model.Definition
  • Classe de configuração de produção: petshop.Production    

Classe de operação de negócios

Para cada serviço definido no documento Swagger, existe um método relacionado denominado por <VERB><ServiceId>.

Aprofunde-se em um simples método gerado GETgetPetById  

/// Retorna um único animal de estimação
Method GETgetPetById(pRequest As petshop.msg.getPetByIdRequest, pResponse As petshop.msg.GenericResponse) As %Status
{
    Set sc = $$$OK, pURL = "/v2/pet/{petId}"
    Set pHttpRequestIn = ..GetRequest(pRequest)
    Set pHttpRequestIn.ContentType = pRequest.consume
    Set pURL = $Replace(pURL, "{petId}", pRequest.pathpetId)
    $$$QuitOnError(..Adapter.SendFormDataArray(.pHttpResponse, "get", pHttpRequestIn , , , pURL))
    Set pResponse = ##class(petshop.msg.GenericResponse).%New()
    Set sc = ..genericProcessResponse(pRequest, pResponse, "GETgetPetById", sc, $Get(pHttpResponse),"petshop.msg.getPetByIdResponse")
    Return sc
}

 

  • Em primeiro lugar, o objeto %Net.HttpRequest é sempre criado pelo método GetRequest, fique à vontade para editar e adicionar alguns cabeçalhos, se necessário.
  • Em segundo lugar, o objeto HttpRequest é preenchido usando pRequest `petshop.msg.getPetByIdRequest' (Ens.Request subclass).
  • Em terceiro lugar, EnsLib.HTTP.OutboundAdapter é usado para enviar solicitação http.
  • E, finalmente, há um processamento de resposta genérico pelo método genericProcessResponse:
Method genericProcessResponse(pRequest As Ens.Request, pResponse As petshop.msg.GenericResponse, caller As %String, status As %Status, pHttpResponse As %Net.HttpResponse, parsedResponseClassName As %String) As %Status
{
    Set sc = $$$OK
    Set pResponse.operation = caller
    Set pResponse.operationStatusText = $SYSTEM.Status.GetOneErrorText(status)
    If $Isobject(pHttpResponse) {
        Set pResponse.httpStatusCode = pHttpResponse.StatusCode
        Do pResponse.body.CopyFrom(pHttpResponse.Data)
        Set key = ""
        For  {
            Set key = $Order(pHttpResponse.Headers(key),1 , headerValue)
            Quit:key=""
            Do pResponse.headers.SetAt(headerValue, key)
        }
        Set sc = ##class(petshop.Utils).processParsedResponse(pHttpResponse, parsedResponseClassName, caller, pRequest, pResponse)
    }
    Return sc
}

  Então, podemos analisar um método um pouco mais complexo POSTuploadFile

Method POSTuploadFile(pRequest As petshop.msg.uploadFileRequest, pResponse As petshop.msg.GenericResponse) As %Status
{
    Set sc = $$$OK, pURL = "/v2/pet/{petId}/uploadImage"
    Set pHttpRequestIn = ..GetRequest(pRequest)
    Set pHttpRequestIn.ContentType = pRequest.consume
    Set pURL = $Replace(pURL, "{petId}", pRequest.pathpetId)
    If pHttpRequestIn.ContentType = "multipart/form-data" {
        Set valueStream = ##class(%Stream.GlobalBinary).%New()
        Do:$Isobject(pRequest.formDataadditionalMetadata) valueStream.CopyFrom(pRequest.formDataadditionalMetadata)
        Do:'$Isobject(pRequest.formDataadditionalMetadata) valueStream.Write($Zcvt(pRequest.formDataadditionalMetadata,"I","UTF8"))
        Set:'$ISOBJECT($Get(mParts)) mParts = ##class(%Net.MIMEPart).%New()
        Set mimePart = ##class(%Net.MIMEPart).%New(valueStream)
        Do mimePart.SetHeader("Content-Disposition", "form-data; name=""additionalMetadata""; filename=""additionalMetadata""")
        Do mParts.Parts.Insert(mimePart)
    } Else { 
        Do pHttpRequestIn.InsertFormData("additionalMetadata", pRequest.formDataadditionalMetadata)
    }
    If pHttpRequestIn.ContentType = "multipart/form-data" {
        Set valueStream = ##class(%Stream.GlobalBinary).%New()
        Do:$Isobject(pRequest.formDatafile) valueStream.CopyFrom(pRequest.formDatafile)
        Do:'$Isobject(pRequest.formDatafile) valueStream.Write($Zcvt(pRequest.formDatafile,"I","UTF8"))
        Set:'$ISOBJECT($Get(mParts)) mParts = ##class(%Net.MIMEPart).%New()
        Set mimePart = ##class(%Net.MIMEPart).%New(valueStream)
        Do mimePart.SetHeader("Content-Disposition", "form-data; name=""file""; filename=""file""")
        Do mParts.Parts.Insert(mimePart)
    } Else { 
        Do pHttpRequestIn.InsertFormData("file", pRequest.formDatafile)
    }
    If $ISOBJECT($Get(mParts)) {
        Set mimeWriter = ##class(%Net.MIMEWriter).%New()
        Do mimeWriter.OutputToStream(.stream)
        Do mimeWriter.WriteMIMEBody(mParts)
        Set pHttpRequestIn.EntityBody = stream
        Set pHttpRequestIn.ContentType = "multipart/form-data; boundary=" _ mParts.Boundary
    }
    $$$QuitOnError(..Adapter.SendFormDataArray(.pHttpResponse, "post", pHttpRequestIn , , , pURL))
    Set pResponse = ##class(petshop.msg.GenericResponse).%New()
    Set sc = ..genericProcessResponse(pRequest, pResponse, "POSTuploadFile", sc, $Get(pHttpResponse),"petshop.msg.uploadFileResponse")
    Return sc
}

  Como você pode ver, é exatamente a mesma lógica: GetRequest, preenchendo %Net.HttpRequest, enviar solicitação, processamento de resposta genérica.
 

Classe Proxy REST

Uma aplicação proxy REST também é gerada.
Esta classe REST usa um Projection para criar automaticamente a aplicação web relacionada (ex: "/petshoprest", consulte petshop.rest.REST e petshop.rest.Projection).   Este proxy REST cria a mensagem Ens.Request e envia-a para o Business.Process.

Class petshop.rest.REST Extends %CSP.REST [ ProcedureBlock ]
{

Projection WebApp As petshop.rest.Projection;

...

ClassMethod POSTaddPet() As %Status
{
    Set ensRequest = ##class(petshop.msg.addPetRequest).%New()
    Set ensRequest.consume = %request.ContentType
    Set ensRequest.accept = $Get(%request.CgiEnvs("HTTP_ACCEPT"),"*/*")
    Set ensRequest.bodybody = ##class(petshop.model.Definition.Pet).%New()
    Do ensRequest.bodybody.%JSONImport(%request.Content)
    Return ##class(petshop.Utils).invokeHostAsync("petshop.bp.Process", ensRequest, "petshop.bs.ProxyService")
}

ClassMethod GETgetPetById(petId As %String) As %Status
{
    Set ensRequest = ##class(petshop.msg.getPetByIdRequest).%New()
    Set ensRequest.consume = %request.ContentType
    Set ensRequest.accept = $Get(%request.CgiEnvs("HTTP_ACCEPT"),"*/*")
    Set ensRequest.pathpetId = petId
    Return ##class(petshop.Utils).invokeHostAsync("petshop.bp.Process", ensRequest, "petshop.bs.ProxyService")
}
...
ClassMethod POSTuploadFile(petId As %String) As %Status
{
    Set ensRequest = ##class(petshop.msg.uploadFileRequest).%New()
    Set ensRequest.consume = %request.ContentType
    Set ensRequest.accept = $Get(%request.CgiEnvs("HTTP_ACCEPT"),"*/*")
    Set ensRequest.pathpetId = petId
    Set ensRequest.formDataadditionalMetadata = $Get(%request.Data("additionalMetadata",1))
    set mime = %request.GetMimeData("file")
    Do:$Isobject(mime) ensRequest.formDatafile.CopyFrom(mime)
    Return ##class(petshop.Utils).invokeHostAsync("petshop.bp.Process", ensRequest, "petshop.bs.ProxyService")
}
...
}

  Então, vamos testar a produção com este proxy REST.  

Abra e inicie o petshop.Production

Crie um animal de estimação

  Altere o número da porta, se necessário:

curl --location --request POST 'http://localhost:52795/petshoprest/pet' \
--header 'Content-Type: application/json' \
--data-raw '{
  "category": {
    "id": 0,
    "name": "string"
  },
  "id" : 456789,
  "name": "Kitty_Galore",
  "photoUrls": [
    "string"
  ],
  "tags": [
    {
      "id": 0,
      "name": "string"
    }
  ],
  "status": "available"
}'

  A produção é executada no modo assíncrono, portanto, a aplicação proxy restante não espera pela resposta. Este comportamento pode ser editado, mas normalmente, a produção de interoperabilidade usa o modo assíncrono.   Veja o resultado no visualizador de mensagens e no traço visual

EDIÇÃO: desde a versão 1.1.0, a aplicação Proxy Rest funciona em modo de sincronização

  Se tudo estiver bem, podemos observar um código http de status 200. Como você pode ver, recebemos uma resposta do corpo e ela não está analisada.

O que isso significa?
Isso ocorre quando resposta da aplicação/json ou a resposta 200 da especificação Swagger não é preenchida.
Nesse caso, a resposta 200 não está preenchida.  

Obtenha uma animal de estimação

  Agora, tente obter o animal de estimação criado:

curl --location --request GET 'http://localhost:52795/petshoprest/pet/456789'

  Verifique o traço visual:

  Desta vez, esta é uma resposta da aplicação/json (a resposta 200 está completa nas especificações Swagger). Podemos ver um objeto de resposta analisado.   ### API REST - Gerar e baixar

Além disso, essa ferramenta pode ser hospedada em um servidor para permitir que os usuários gerem e baixem o código.   Uma API REST e um formulário básico estão disponíveis:  

Nesse caso, o código é simplesmente gerado sem compilar, exportado e, em seguida, tudo é excluído.
Este recurso pode ser útil para centralização de ferramentas.
  Veja o README.md para informações atualizadas.     Obrigado pela leitura.  

0
0 235
Anúncio Angelo Bruno Braga · Fev. 1, 2021

Olá Comunidade,

Estamos felizes em convidá-los para o encontro on-line com os ganhadores do Concurso Multi-Modelo InterSystems!

Data e Horário:

Segunda-Feira, 5 de Fevereiro de 2021 – 12:00 horário de Brasília

O que lhe aguarda neste encontro virtual ?

  • A biografia de nossos ganhadores.
  • Demonstrações de suas aplicações.
  • Uma discussão aberta sobre as tecnologias utilizadas, bônus, dúvidas e planos para os próximos concursos.

0
0 88
Artigo Angelo Bruno Braga · jan 28, 2021 1m read

Para inscrever a sua aplicação do Open Exchange para um de nossos Concursos de Programação InterSystems basta seguir os seguintes passos:

Faça seu Log in no Open Exchange, e abra a seção com suas aplicações:

Abra a aplicação que você deseja registrar no concurso:

Certifique-se de que o status se encontra como 'Published'.

A aplicação será encaminhada para revisão e , se ela se enquadrar no tópico do concurso para qual foi feita a solicitação de registro, ela será listada no Quadro do Concurso.

Simples assim.

Boa sorte a todos !!!

0
0 64
Anúncio Angelo Bruno Braga · jan 28, 2021

Olá Desenvolvedores!

Temos uma grande novidade para os desenvolvedores da plataforma de dados InterSystems IRIS! !! 

Estamos muito felizes em convidá-los a todos a se juntarem a nossa competição anual de criação de soluções open-source utilizando nossa plataforma de dados InterSystems IRIS! 

Dêem as boas vindas ao:

🏆 Concurso de Programação InterSystems Grand Prix🏆

Duração: de 8 de Fevereiro a 8 de Março de 2021

Valor total dos prêmios: US$ 16,000

0
0 55
Anúncio Angelo Bruno Braga · jan 26, 2021

Olá Comunidade,

2020 foi repleto de ótimas aplicações! 

Quase 400 apps já foram submetidos ao InterSystems Open Exchange! Além disto mais de 200 apps foram submetidos para nossa galeria de aplicativos em 2020!

Estamos muito satisfeitos em poder apresentar os melhores desenvolvedores e os apps mais baixados do Open Exchange que você certamente deveria experimentar!

 

3
0 76
Anúncio Angelo Bruno Braga · jan 26, 2021

Olá Desenvolvedores,

Esta semana é a semana de votação para o Concurso Multi-Modelo InterSystems! Então, essa é a hora de dar seu voto para as melhores soluções desenvolvidas com a plataforma de dados InterSystems IRIS.

🔥 A decisão é sua: VOTE AQUI 🔥

Como votar?<--break->

Com nossa nova interface e algoritmo de votação para a nomeação dos Experts e da Comunidade, você pode selecionar três projetos agora, o 1°, 2° e 3° lugar, de acordo com sua decisão. É assim que funcionará no quadro de classificação da Comunidade:

Colocação Pontos
3
2
1
1
0 73
Anúncio Angelo Bruno Braga · jan 8, 2021

Olá Desenvolvedores,

Estamos gratos em convidar todos os desenvolvedores para o Webinar Inicial do Concurso Multi-Modelo InterSystems! O tópico deste webinar é dedicado ao Concurso Multi-Modelo da InterSystems.

Neste webinar nós iremos demonstrar o uso das APIs para cada modelo de dados.

Dia e Horário: Segunda-Feira, 11 de Janeiro — 12:00 horário de Brasília

Palestrantes:  
🗣 @Benjamin De Boe, InterSystems Product Manager
🗣 @Bob Kuszewski, InterSystems Product Manager - Developer Experience
🗣 @Evgeny Shvarov, InterSystems Developer Ecosystem Manager


<--break->

0
0 61