Gerar um JSON

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Gerar um JSON

Mensagem por alaminojunior »

Caros colegas, surgiu a necessidade de se consumir uma API, e confesso não estou encontrando aqui no fórum algum exemplo de criação de um JSON simples.
Podem dar uma luz ?
Não sei nem se estou usando o critério correto de busca rsrsrsr
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerar um JSON

Mensagem por JoséQuintas »

um json simples ?

Código: Selecionar todos

cJson := hb_jsonEncode( { 1 } )
Não tão simples, só misturar array e hash

Código: Selecionar todos

cJson := hb_jsonEncode( Directory("*.*" ) )

Código: Selecionar todos

x := hb_Hash()
x[ "codigo" ] := 10
x[ "arquivos" ] := Directory( "*.*" )
cJson := hb_jsonEncode( x )
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
mmarcondes
Usuário Nível 2
Usuário Nível 2
Mensagens: 81
Registrado em: 02 Jul 2021 15:06
Localização: witmarsum

Gerar um JSON

Mensagem por mmarcondes »

Foi bom ter entrado agora no fórum, além da OOP, esse negócio de api eu também queria saber como é que faz.
Pra onde você olha é api pra isso, api pra aquilo, e por ai vai, e mais uma vez, pelo que entendi, agora a moda é ter uma parte do sistema que só tem as telas, que chama frontend, uma parte que só tem validação, que chama de backend, e a tal da api que faz os dois se falar, e pelo que entendi, fizeram isso por causa da internet, pra conseguir comunicar melhor e mais rápido, já que hoje tudo é na nuvem, mas em outras linguagens tem um caminhão de exemplos, e no harbour nunca vi nada, dai veio a dúvida, o tal do json é um parente do xml, um txt mais moderno, e pelo que o Quintas mostrou, dá pra criar com harbour ele, mas e o resto, o mandar informação pro sql na nuvem, pegar de volta, etc, etc, como que faz ??
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Gerar um JSON

Mensagem por alaminojunior »

Quintas, muito obrigado. Inclusive já havia visto o seu terceiro exemplo numa resposta a outro post.
Funcionou.

Marcondes, vou ver se consigo montar um exemplo fácil e postar aqui.

Agora, é imprescindível ter a documentação da API que pretende consumir, para saber os parâmetros que deverá usar e como usar.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Gerar um JSON

Mensagem por Jairo Maia »

Documentação da HBWIN, seus comandos e sintaxes no Harbour para uso e acesso a API do Windows:

HBWIN library documentation
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerar um JSON

Mensagem por JoséQuintas »

mmarcondes escreveu: o mandar informação pro sql na nuvem, pegar de volta, etc, etc, como que faz ??
SQL é uma coisa, webservice é outra.
Cada webservice tem seus detalhes, não é tão padrão assim.
Dá pra dizer que vai da cabeça do programador que criou o webservice.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
mmarcondes
Usuário Nível 2
Usuário Nível 2
Mensagens: 81
Registrado em: 02 Jul 2021 15:06
Localização: witmarsum

Gerar um JSON

Mensagem por mmarcondes »

Então Quintas, eu sei que SQL é linguagem para banco de dados, tudo bem, e que webservice é essa tecnologia nova que inventaram por causa da internet e dados na nuvem, etc, o que eu não consigo entender, até já fiz postagem sobre isso aqui, é por exemplo : eu tenho um sistema em harbour, um controle financeiro por exemplo, e vou querer deixar todos os dados desse sistema na nuvem, contrato o serviço, etc, já pesquisei sobre isso, até aqui tudo certo, mas e para fazer essa comunicação usando API e webservice, como faz essa ligação ? já pesquisei muito e não consigo entender pra que lado correr, tem jeito em harbour de fazer isso, igual fazem em outras linguagens ?
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerar um JSON

Mensagem por JoséQuintas »

Pra deixar os dados nas núvens, pode deixar banco de dados nas núvens.
No MySQL, por exemplo, você indica o endereço do servidor, pode ser local, num servidor da rede, num servidor das núvens, só muda o nome.

webservice, que também virou comum chamar de API, é o aplicativo trocar mensagens em um endereço de internet, atendido por um servidor. Entrega a mensagem e recebe a resposta.

Os detalhes podem variar muito, conforme seja XML, json, etc., mas basicamente isto

Código: Selecionar todos

oServer := win_OleCreateObject( "MSXML2.ServerXMLHTTP.6.0" )
oServer:Open( "POST", ::cSoapURL, .F. )
oServer:Send( ::cXmlSoap )
cRetorno := oServer:ResponseBody()
Ai pode entrar certificado, tipo XML/JSON ou outro, variáveis, usuário, senha, POST/PUT, etc.
Basicamente é isso: vai um texto e volta outro texto
Tem que seguir as regras do webservice, senão pode nem sequer ter resposta.
Acho que nem precisa dizer, que tudo na internet é um computador do outro lado respondendo, webservice também não foge disso.
E quando digo texto, pode ser texto, xml, json, qualquer coisa.
Isso acima pode ser usado pra download de EXE, ou downloads em geral, ou webservice, ou páginas de internet mesmo.

O difícil não é o que usar, o difícil é saber os detalhes da comunicação, ou formato de envio/recebimento, etc.
Qualquer detalhe diferente não funciona.
Até existe um padrão de uso com xml ou json, mas esse padrão não é suficiente pra mostrar todos os detalhes.
De repente, o webservice pode exigir que envie "pctoledo" como variável a mais na comunicação.
CADA webservice é um novo desafio, partindo do que se conhece, e tentando descobrir o que precisa a mais.

Também poderia ser webservice pra enviar/gravar no mysql, tudo depende pra que foi feito o webservice, e dos detalhes de comunicação.
Se fosse simples seria risco de segurança, então espere pelo pior kkkk
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
mmarcondes
Usuário Nível 2
Usuário Nível 2
Mensagens: 81
Registrado em: 02 Jul 2021 15:06
Localização: witmarsum

Gerar um JSON

Mensagem por mmarcondes »

Quintas, aos poucos estou entendendo tudo isso, está clareando as ideias, agora mais uma dúvida, tem como fazer a API em Harbour ?
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Gerar um JSON

Mensagem por alxsts »

Olá!
JoséQuintas escreveu:...webservice, que também virou comum chamar de API...
alura escreveu:Ou seja, resumindo de maneira bem simples:

Todos os Web Services são API. Mas nem todas as API são Web Service. Web Services podem não executar todas as tarefas que uma API normalmente realiza (ou pode realizar). Um serviço Web utiliza apenas três estilos de comunicação: SOAP, REST e XML-RPC enquanto que a API pode usar qualquer estilo de comunicação. Um Web Service sempre precisa de uma rede para o seu funcionamento enquanto uma API não precisa. Uma API facilita a interface direta com um aplicativo enquanto que um Web Service é uma aplicação.
Fonte: Qual a diferença entre Web Services e API ?
[]´s
Alexandre Santos (AlxSts)
Responder