Linguagem de Cristal
código de erro API mailerlite 422 para endpoint de subscritores
Hoje, estava a implementar a interface entre PiCockpit.com e o Mailerlite API (que usamos no nosso software de newsletter). https://api.mailerlite.com/api/v2/subscribers Recebi a seguinte mensagem de erro: O pedido POST estava a devolver 422 como código de estado. Infelizmente, há pouca documentação sobre isso no Mailerlite. A minha implementação estava correcta (a propósito, esta é Crystal Lang):...
WeiterlesenLidando com NIL em JSON::Qualquer em Crystal Lang
Um dos desafios ao desenvolver com o Crystal é que ele não é tão clemente sobre os tipos de dados como, digamos, Python ou Ruby. nulo irá mantê-lo ocupado. A seguinte mensagem de erro: cast from Nil to String failed, at /usr/share/crystal/src/json/any.cr:220:5:220 pode ser resolvido por: # cast to string, ENTÃO verifique se é nulo se...
WeiterlesenComo utilizar todas as rotas com Kemal
Para uma aplicação Vue.js de página única - pelo menos em uma URL SUB de nossa página - queremos um catch all em nosso servidor, que irá sempre renderizar o mesmo template / saída HTML para o navegador. Kemal é baseado internamente no Radix para roteamento: https://github.com/luislavena/radix O Radix tem um caractere Catch All / Glob:...
WeiterlesenObtendo pedidos de PÓS-PAIS para trabalhar com Axios, Kemal (cristal lang), vue.js
Em picockpit.com, estou a utilizar pedidos AJAX para comunicar com o backend para operações de actualização. Por exemplo, se você quiser mudar o nome deste Pi, você selecionaria: que mostra uma forma inline: como mostrar esta forma inline com vue.js é além do ponto deste post (embora muito interessante!) Clicando...
Weiterlesenmongo_orm Exception: missing bson key: publish_acl (Exceção)
Quando você amplia suas definições de campo nas classes de documentos mongo_orm, especificamente com documentos embutidos, você pode encontrar o seguinte erro de tempo de execução (!): Exceção: falta da chave bson: (Exceção) Isto não é um erro no seu código - o seu código está a subir, porque a estrutura da base de dados não é como espera que seja!...
Weiterlesenmongo_orm nome personalizado para coleta
mongo_orm determinará automaticamente o nome da sua coleção usando o nome do Módulo e da Classe, e anexando um "s". Nos casos em que você quer nomear sua coleção, você pode simplesmente fazer isso: classe PapiTest < Mongo::ORM::Document collection_name "Buster" field test : String end get "/" do pt = PapiTest.new pt.test = "I want...
WeiterlesenInstruções para adicionar um usuário a um banco de dados mongo para mongo_orm
Você não quer que sua aplicação web acesse a base de dados usando seu usuário administrador da base de dados. Adicionalmente você quer que ele acesse apenas uma base de dados específica - talvez você tenha bases de dados adicionais rodando na sua instância mongo. Pré-requisitos: mongo_orm espera a configuração do banco de dados como variáveis de ambiente ou como um arquivo config/database.yml em seu projeto. O config/database.yml...
WeiterlesenConstruindo uma experiência persistente de edição em linha com Crystal, MongoDB (datanoise / sam0x17)
Como a documentação ainda é escassa, eu gostaria de acrescentar alguma. Isto é o que estou a construir actualmente: Os campos individuais vão ser editáveis com um editor inline, que guardará automaticamente no backend - não há necessidade de recarregar a página inteira. O objectivo do todo é um backend para o meu...
Weiterlesenkemal-session não persiste dados
https://github.com/kemalcr/kemal-session Analise o que está acontecendo com o cookie da sua sessão. No meu caso, o cookie da sessão foi reinicializado toda vez que eu fui fazer o login. Percebi que minha idéia de limpar a sessão antiga como uma primeira declaração após o login bem sucedido, antes de configurar a nova sessão, não é uma boa idéia. Eu suspeito, que o...
WeiterlesenUtilização de módulos em cristal
Conforme sua aplicação cresce, você gostaria de passar de um grande arquivo .cr para separar seu código em arquivos menores. Você pode usar o requerimento do seu arquivo .cr principal para adicionar código de outros arquivos: requerer "./tools/*". Esta declaração adicionará o código do diretório de ferramentas, relativo ao seu arquivo .cr principal. Isto irá...
Weiterlesen