Skip to content

Commit f7d0c96

Browse files
committed
deploy: da3ae8e
1 parent 49adaa9 commit f7d0c96

4 files changed

Lines changed: 190 additions & 67 deletions

File tree

_sources/odata.rst.txt

Lines changed: 72 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,78 @@
22
OData
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

2178
A 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

3491
Os *endpoints* retornados herdam da classe :py:class:`bcb.odata.api.Endpoint`,
3592
que possui o método :py:meth:`bcb.odata.api.Endpoint.query`, através do qual são
3693
realizadas 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`
4299
que possui os seguintes métodos.

objects.inv

3 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)