Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a public-facing API #84

Open
zorun opened this issue May 10, 2021 · 2 comments
Open

Add a public-facing API #84

zorun opened this issue May 10, 2021 · 2 comments

Comments

@zorun
Copy link
Collaborator

zorun commented May 10, 2021

We need an API for bird-lg. It would allow to better separate the web UI and the backend, and allow external tools to query bird-lg.

This is about a public API that would be exposed by bird-lg, and not about router <--> bird-lg communication (routers should not expose a publicly-available interface anyway)

The API should:

  • use a standard format (JSON)
  • cover everything that is currently possible in the web UI (i.e. we could rewrite the web frontend to use the API)
  • if possible, adhere to some "standard" for this kind of API
@zorun
Copy link
Collaborator Author

zorun commented May 10, 2021

Here is some initial research about existing looking glass APIs (from #35) :

There have been upstream discussions about structured output in Bird: https://bird.network.cz/pipermail/bird-users/2017-June/011356.html
And a patch from Netflix enabling JSON output directly in Bird: https://bird.network.cz/pipermail/bird-users/2018-March/012088.html

There's also Periscope from CAIDA, that parses many kind of looking glasses and outputs JSON:
https://www.caida.org/tools/utilities/looking-glass-api/
https://www.nanog.org/sites/default/files/20161018_Giotsas_Periscope_Standardizing_And_v1.pdf

@zorun
Copy link
Collaborator Author

zorun commented May 10, 2021

The "Bird's Eye" project from INEX also has an API: https://github.com/inex/birdseye

Example here: https://www.inex.ie/rc1-cork-ipv4/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant