escrevendo um pequeno serviço web para dispositivos embarcados baseado no debian [closed]

1

Estamos desenvolvendo um dispositivo incorporado que se integrará a alguns de nossos serviços no futuro. Este dispositivo tem um conjunto limitado de funcionalidades e mods definidos pelo usuário para casos de uso específicos. Baseado na arquitetura do braço, este dispositivo rodando a versão modificada do Debian. Para configuração de configuração de rede e principal, preciso escrever um pequeno serviço da web. Isso deve ser seguro e leve. Eu testei isso com uma mistura de servidores web leves, como lighttpd e linguagens como python, e manejei para fazer o protótipo funcionar. que possuem o serviço da web em funcionamento e que o serviço da web pode integrar-se aos clientes, o que forçará a configuração na etapa inicial. Minha preocupação é que, embora seja leve, eu não preciso implantar o servidor Web completo em dispositivos que têm alto nível de acesso ao dispositivo para configurá-lo. mesmo que eu desative este processo após a configuração

Existe alguma maneira de ter uma pequena API de descanso além de ter um servidor web completo? Eu já testei o resto do C ++. que é um servidor complexo e baseado em python, menos o serviço web. mas eu não quero implantar python também. já que este serviço só transmite abaixo de 10 parâmetros para o cliente e é um exagero. Existe alguma maneira segura de implementar isso sem daemon como serviço.

    
por gripen fighter 13.08.2018 / 05:15

1 resposta

1

Embora essa pergunta seja um pouco vaga e aberta a opiniões, eu vou jogar a minha lá fora. Golang Tem um pacote de servidores muito fácil de usar na biblioteca padrão. Ele se parece muito com o C, compila para executáveis nativos em quase todas as plataformas e arquiteturas e você pode hospedar um servidor da Web muito simples com poucas linhas, como abaixo.

package main

import (
    "fmt"
    "log"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:])
}

func main() {
    http.HandleFunc("/", handler)
    log.Fatal(http.ListenAndServe(":8080", nil))
}

Se você deseja segurança, é muito fácil configurar o TLS criando alguns certificados autoassinados e simplesmente substituindo o http.ListenAndServe por err := http.ListenAndServeTLS(":10443", "cert.pem", "key.pem", nil)

É muito leve e fácil de executar em qualquer lugar. Como Eli apontou de forma inteligente nos comentários, a compilação cruzada também é muito fácil de fazer, o que significa construções e implementações rápidas em seus dispositivos incorporados.

    
por 14.08.2018 / 05:22