22OData
33=====
44
5- Diversas classes implementam a integração com APIs OData.
5+ Diversas APIs disponíveis no `portal de dados abertos <https://dadosabertos.bcb.gov.br/ >`_ do Banco Central
6+ implementam o protocolo `OData <https://www.odata.org/ >`_, são centenas de APIs.
67
7- - :py:class: `bcb.odata.api.Expectativas `
8- - :py:class: `bcb.odata.api.PTAX `
9- - :py:class: `bcb.odata.api.TaxaJuros `
10- - :py:class: `bcb.odata.api.IFDATA `
11- - :py:class: `bcb.odata.api.MercadoImobiliario `
8+ O ``python-bcb `` tem algumas classes que implementam algumas APIs OData:
129
13- Todas essas classes herdam de :py:class: `bcb.odata.api.BaseODataAPI ` que faz a integração
14- com as APIs OData e organiza a informação em um ``DataFrame ``.
10+ - :py:class: `bcb.odata.api.Expectativas `: Expectativas de mercado para os indicadores macroeconômicos da Pesquisa Focus
11+ - :py:class: `bcb.odata.api.PTAX `: Dólar comercial
12+ - :py:class: `bcb.odata.api.TaxaJuros `: Taxas de juros de operações de crédito por instituição financeira
13+ - :py:class: `bcb.odata.api.IFDATA `: Dados selecionados de instituições financeiras
14+ - :py:class: `bcb.odata.api.MercadoImobiliario `: Informações do Mercado Imobiliário
15+ - :py:class: `bcb.odata.api.SPI `: Estatísticas do SPI (Sistema de Pagamentos Instantâneos)
16+ - Veja todas as APIs implementadas em :ref: `APIs OData `.
1517
16- Veja todas as APIs implementadas em :ref: `APIs OData `.
18+ Estas APIs foram implementadas em classes por serem as mais populares, entretanto,
19+ qualquer API OData pode ser acessada através da classe :py:class: `bcb.odata.api.ODataAPI ` que abstrai o acesso
20+ a API a partir da URL da API que está disponível no `portal de dados abertos <https://dadosabertos.bcb.gov.br/ >`_
21+ do Banco Central.
22+ Veja mais detalhes em :ref: `Classe ODataAPI `.
1723
18- :py:class: `bcb.odata.api.BaseODataAPI `
19- --------------------------------------
24+ Segue um exemplo de como acessar a API do PIX.
25+
26+ .. ipython :: python
27+
28+ from bcb import SPI
29+ pix = SPI()
30+
31+ É necessário importar e criar um objeto da classe que implementa a API, neste caso a classe ``SPI ``.
32+ Tendo o objeto, executar o método ``describe `` para visualizar o *endpoints * disponíveis na API.
33+
34+
35+ .. ipython :: python
36+
37+ pix.describe()
38+
39+ Como vemos, a API do PIX tem 4 *endpoints * (``EntitySets ``).
40+ Para ver as informações retornadas por cada *endpoint * é só executar o método ``describe `` passando como argumento
41+ o nome do *endpoint *.
42+
43+ .. ipython :: python
44+
45+ pix.describe(' PixLiquidadosAtual' )
46+
47+ Vemos que o *endpoint * ``PixLiquidadosAtual `` retorna uma tabela com 4 propriedades:
48+
49+ - ``Data<datetime> ``: data das operações
50+ - ``Quantidade<int> ``: quantidade de operações realizadas na data
51+ - ``Total<float> ``: financeiro das operações realizdas na data
52+ - ``Media<float> ``: média das operações realizadas na data
53+
54+ Para acessar os dados deste *endpoint * é necessário obter um objeto com o *endpoint * e executar uma ``query `` nesse
55+ objeto.
56+ O método ``get_endpoint `` retorna um objeto da classe :py:class: `bcb.odata.api.Endpoint `.
57+
58+ .. ipython :: python
59+
60+ ep = pix.get_endpoint(' PixLiquidadosAtual' )
61+ ep.query().limit(10 ).collect()
62+
63+ Ao realizar a ``query `` no *endpoint * limitamos a consulta a retornar 10 elementos, apenas para visualizar os dados
64+ da consulta.
65+ A consulta retorna um DataFrame pandas onde as colunas são as propriedades do *endpoint *.
66+
67+ Veremos abaixo, com mais detalhes, como realizar consultas nas APIs e quais os tipos de *endpoints * disponíveis
68+ (``EntitySets `` e ``FunctionImports ``).
69+
70+ .. TODO: fazer uma sessão, Como Realizar Consultas
71+
72+ Classe :py:class: `bcb.odata.api.BaseODataAPI `
73+ ---------------------------------------------
74+
75+ Todas as classes que implementam um API OData herdam de :py:class: `bcb.odata.api.BaseODataAPI `, que faz a integração
76+ com as APIs OData e realiza consultas na API retornando as propriedades em um ``DataFrame ``.
2077
2178A classe :py:class: `bcb.odata.api.BaseODataAPI ` possui apenas 2 métodos:
2279
@@ -28,15 +85,15 @@ A classe :py:class:`bcb.odata.api.BaseODataAPI` possui apenas 2 métodos:
2885 :py:class: `bcb.odata.api.Endpoint ` referente ao nome do *endpoint * fornecido.
2986
3087
31- :py:class: `bcb.odata.api.Endpoint `
32- ----------------------------------
88+ Classe :py:class: `bcb.odata.api.Endpoint `
89+ -----------------------------------------
3390
3491Os *endpoints * retornados herdam da classe :py:class: `bcb.odata.api.Endpoint `,
3592que possui o método :py:meth: `bcb.odata.api.Endpoint.query `, através do qual são
3693realizadas as consultas estruturadas na API OData.
3794
38- :py:class: `bcb.odata.framework.ODataQuery `
39- ------------------------------------------
95+ Classe :py:class: `bcb.odata.framework.ODataQuery `
96+ -------------------------------------------------
4097
4198:py:meth: `bcb.odata.api.Endpoints.query ` retorna um objeto :py:class: `bcb.odata.framework.ODataQuery `
4299que possui os seguintes métodos.
0 commit comments