Configurar “appsettings.json”

O arquivo ‘appsettings.json’ em uma aplicação RESTful (ou REST API) geralmente é usado para armazenar configurações e informações de configuração para a aplicação.

Ele é parte integrante do ambiente ASP.NET Core e é usado para definir várias configurações, como conexões de banco de dados, configurações de log, configurações de autenticação, e outras variáveis de ambiente.

No BR One API não é diferente, o ‘appsettings.json’ deve ser configurado corretamente para garantir a conformidade da aplicação.

Segue abaixo exemplo do ‘appsettings.json’ disponível para configuração:

{
  "Logging": {
        "Seq": {
          "Url": "http://localhost:5341/"
        }
  },
  "AllowedHosts": "*",
  "OpenApiInfo": {
        "Title": "BR One API",
        "Description": "APIs REST para interação com os módulos do BR One através de integrações via requisições web.",
        "Contact": {
          "Name": "Uppertools",
          "Email": "contato@uppertools.com.br"
        }
  },
  "JwtSettings": {
        "Secret": "81b4dada80b2f4126ea7244d328c2270",
        "ExpiracaoSegundos": 600,
        "Emissor": "BROne",
        "ValidoEm": "https://localhost"
  },
  "Kestrel": {
        "EndPoints": {
          "Http": {
                "Url": "http://localhost:4300/"
          },
          "Https": {
                "Url": "https://localhost:4301/"
          }
        }
  },
  "FeatureManagement": {
        "EnableVersionInterceptor": false
  },
  "ServerCredentials": {
        "Type": "HANA",
        "Driver": "HDBODBC",
        "Server": "hanab1:30015",
        "User": "SYSTEM",
        "Password": "1234",
        "EncryptedPassword": null
  },
  "ServiceLayer": {
        "Url": "https://hanab1:50000/b1s/v1",
        "User": "manager",
        "Password": "1234",
        "EncryptedPassword": null
  }
}

Segue abaixo detalhe sobre os campos disponíveis no appsettings.json:

{
  "Logging": {
        "Seq": {
          "Configurations": "Configurações para integração com o Seq, uma plataforma de registro e análise de logs.",
          "Url": "O endereço onde o Seq está sendo executado (http://localhost:5341/)."
        }
  },
  "AllowedHosts": {
        "Description": "Este campo indica quais hosts são permitidos para acessar a aplicação. No exemplo, o valor \"*\" indica que qualquer host é permitido."
  },
  "OpenApiInfo": {
        "Title": "Título da API (\"BR One API\").",
        "Description": "Uma descrição breve da API.",
        "Contact": {
          "Name": "Nome da organização ou pessoa de contato (\"Uppertools\").",
          "Email": "Endereço de e-mail de contato (\"contato@uppertools.com.br\")."
        }
  },
  "JwtSettings": {
        "Secret": "A chave secreta usada para assinar os tokens JWT.",
        "ExpiracaoSegundos": 600,
        "Emissor": "O emissor dos tokens JWT (\"BROne\").",
        "ValidoEm": "O URI válido para o qual os tokens são emitidos (\"https://localhost\")."
  },
  "Kestrel": {
        "Description": "Configurações para o servidor web Kestrel, que é um servidor web embutido no ASP.NET Core.",
        "EndPoints": {
          "Http": {
                "Description": "Define as configurações para o endpoint HTTP.",
                "Url": "O endereço em que o servidor Kestrel estará ouvindo (http://localhost:4300/)."
          },
          "Https": {
                "Description": "Define as configurações para o endpoint HTTPS.",
                "Url": "O endereço em que o servidor Kestrel estará ouvindo em HTTPS (https://localhost:4301/)."
          }
        }
  },
  "FeatureManagement": {
        "Description": "Configurações para a gestão de funcionalidades (feature flags).",
        "EnableVersionInterceptor": false
  },
  "ServerCredentials": {
        "Description": "Configurações de credenciais do servidor de banco de dados.",
        "Type": "O tipo de banco de dados (\"HANA\").",
        "Driver": "O driver do banco de dados (\"HDBODBC\").",
        "Server": "O nome do servidor e a porta separados por dois pontos (\"hanab1:30015\").",
        "User": "O nome de usuário do banco de dados (\"SYSTEM\").",
        "Password": "A senha do banco de dados (\"1234\").",
        "EncryptedPassword": "Neste exemplo, não há uma senha criptografada."
  },
  "ServiceLayer": {
        "Description": "Configurações para a camada de serviço.",
        "Url": "O endereço da camada de serviço (\"https://hanab1:50000/b1s/v1\").",
        "User": "O nome de usuário para autenticação na camada de serviço (\"manager\").",
        "Password": "A senha para autenticação na camada de serviço (\"1234\").",
        "EncryptedPassword": "Neste exemplo, não há uma senha criptografada."
  }
}