Coder Social home page Coder Social logo

brasilapi-dotnet's Introduction

Brasil API

Vamos transformar o Brasil em uma API?

Atenção

Este é um SDK/Client .Net para BrasilAPI!

Como utilizar

Utilização com injeção de dependencia

Realizar a injeção na sua camada de service. ConfigureServices na classe Startup.cs ou Program.cs como abaixo.

Exemplo da implementação no Program.cs

using SDKBrasilAPI;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddBrasilApi();

Utilização em um endpoint minimal API

app.MapGet("/ParticipantesPIX", async (IBrasilAPI brasilAPI) =>
{ 
    return await brasilAPI.ParticipantesPIX();
});

Utilização em uma controller MVC

[ApiVersion("2")]
[Route("v{version:apiVersion}/[controller]")]
public class ServiceController : ControllerBase
{ 
	private readonly IBrasilAPI _brasilAPI;

	public ServiceController(IBrasilAPI brasilAPI)
	{
		_brasilAPI = brasilAPI; 
	}
}

Utilização sem injeção de dependencia (não recomendado)

using SDKBrasilAPI;

Exemplo para receber a lista de cidades com DDD 17:

using (var brasilAPI = new BrasilAPI())
{
  var response = await brasilAPI.DDD(17);
  foreach (var city in response.Cities)
  {
    Console.WriteLine(city);
  }
}

Exemplo de como tratar erros:

//cnpj inválido
var cnpj = "00.000.000/0001-00";

try
{
  using (var brasilAPI = new BrasilAPI())
  {
    var response = await brasilAPI.CNPJ(cnpj);
  }
}
catch (BrasilAPIException ex)
{
  //Codigo HTTP de erro
  Console.WriteLine(ex.Code);
  //Mensagem de erro: CNPJ 00.000.000/0001-00 inválido.
  Console.WriteLine(ex.Message);
  //Conteudo recebido: {message:"CNPJ 00.000.000/0001-00 inválido."}
  Console.WriteLine(ex.ContentData);
  //URL gerada para a requisição
  Console.WriteLine(ex.URL);
} 

Sobre a Biblioteca

  • Utilizado .Net Standard 2.0

Requisitos

  • Microsoft.Extensions.DependencyInjection.Abstractions
  • System.Text.Json

Pode ser utilizado a partir do seu sistema .Net Framework 4.6.1+, .Net Core 2.0+ ou Xamarin. Consulte a documentação oficial da Microsoft para mais informações.

brasilapi-dotnet's People

Contributors

farukaf avatar

Stargazers

Ruan Almeida avatar lusyoliveira avatar Caio Vitor Rodrigues da Cost'Oliveira avatar Bruno Sanches avatar Ryan Gabriel avatar Luy Lucas avatar Felipe Fernandes avatar Ronicley Silva avatar Scalar Informática Ltda avatar Danilo Breda avatar Maicon Heck avatar Paulo Carinhena avatar  avatar Victor Schlindwein avatar Fellipe Borges do Nascimento avatar João Victor Dantas avatar Rafael Suarez avatar Gilberto Toledo avatar Robson Pereira Braz Junior avatar Bea Tavernaro avatar Caio Henrique Figurski avatar Lucas R. Costa avatar Robson de Moraes Silva avatar Alexandre Lopes avatar Vinicius de Paula avatar Gustavo Oliveira avatar Paulo Ricardo Stradioti avatar Rodrigo Lessa avatar Bruno Rodrigues Marciano avatar Leandro da Silva Alves avatar Fernando Luiz de Lima avatar Wilson Oliveira Lima avatar Tiago A. Silva avatar Dhiego Ferreira avatar Henrique Clausing avatar AlexSandro Cruz avatar  avatar Raphael Simoes Andrade avatar Matheus Exner avatar yago avatar Matheus Carvalho avatar  avatar Leonardo Bulcão avatar Leandro Freire avatar Matheus Reis avatar Marcelo Santos avatar Gabriel Veronesi avatar Marccus Zavadzki avatar  avatar Jean Carlos Krüger avatar Renan Pinheiro avatar Roberto Dias Junior avatar  avatar Chylton M.R avatar Felipe Cardozo avatar Eduardo Moreira avatar

Watchers

Paulo Ricardo Stradioti avatar  avatar Rafael Suarez avatar Marcel Belato avatar

brasilapi-dotnet's Issues

Adicionar nas documentações quais as exceptions cada função pode soltar

Exemplo

class MasterFileFormatCorruptException : System.Exception { ... }
class MasterFileLockedOpenException : System.Exception { ... }

public class DataBaseOperations
{
    /// <exception cref="MasterFileFormatCorruptException">
    /// Thrown when the master file is corrupted.
    /// </exception>
    /// <exception cref="MasterFileLockedOpenException">
    /// Thrown when the master file is already open.
    /// </exception>
    public static void ReadRecord(int flag)
    {
        if (flag == 1)
        {
            throw new MasterFileFormatCorruptException();
        }
        else if (flag == 2)
        {
            throw new MasterFileLockedOpenException();
        }
        ...
    }
}

Parsing de JSON com System.Text.Json

Olá a todos.

Parabéns pelo excelente trabalho realizado.

Gostaria de propor a mudança da dependência Newtonsoft.Json para System.Text.Json nativo do .NET.

Cabe ressaltar que esta implementação não seria compatível com .NET Standart, se vier a ser considerada.

ISBN endpoint

Olá! Parabéns pelo excelente trabalho!

Gostaria de informar que o projeto oficial agora inclui um endpoint para ISBN, que fornece várias informações sobre livros a partir do número ISBN. Não tenho certeza se essa funcionalidade foi adicionada recentemente ou se existe algum motivo específico para que ela não estivesse disponível antes.

Essa issue tem mais o objetivo de informar do que qualquer outra coisa, considerando que a implementação desse endpoint parece ser relativamente simples.

Abç

Sugestão de implementação

Imagino que você tenha escrito todo o código, mas se quiser dá para gerar a lib de maneira mais simplificada. Como a documentação é feita usando swagger dá para tentar usar um swagger-codegen para gerar a biblioteca automaticamente.

E se quiser acho que é possível deixar mais automático, pode tentar configurar este repo para ficar ouvindo as alterações do repo oficial e toda vez que tiver um novo commit na master você gera uma nova versão da lib por meio do github action

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.