mirror of
https://github.com/datahub-project/datahub.git
synced 2025-07-04 23:57:03 +00:00
65 lines
3.8 KiB
Markdown
65 lines
3.8 KiB
Markdown
![]() |
# DataHub GraphQL API
|
||
|
|
||
|
### DataHub provides a rich [GraphQL](https://graphql.org/) API for programmatically interacting with the Entities & Relationships comprising your organization's Metadata Graph
|
||
|
|
||
|
## Getting Started
|
||
|
|
||
|
Check out [Getting Started](./getting-started.md) to start using the DataHub GraphQL API right away.
|
||
|
|
||
|
## About GraphQL
|
||
|
|
||
|
[GraphQL](https://graphql.org/) provides a data query language and API with the following characteristics:
|
||
|
|
||
|
- A **validated specification**: The GraphQL spec verifies a *schema* on the API server. The server in turn is responsible
|
||
|
for validating incoming queries from the clients against that schema.
|
||
|
- **Strongly typed**: A GraphQL schema declares the universe of types and relationships composing the interface.
|
||
|
- **Document-oriented & hierarchical**: GraphQL makes it eay to ask for related entities using a familiar JSON document
|
||
|
structure. This minimizes the number of round-trip API requests a client must make to answer a particular question.
|
||
|
- **Flexible & efficient**: GraphQL provides a way to ask for only the data you want, and that's it. Ignore all
|
||
|
the rest. It allows you to replace multiple REST calls with one GraphQL call.
|
||
|
- **Large Open Source Ecosystem**: Open source GraphQL projects have been developed for [virtually every programming language](https://graphql.org/code/). With a thriving
|
||
|
community, it offers a sturdy foundation to build upon.
|
||
|
|
||
|
For these reasons among others DataHub provides a GraphQL API on top of the Metadata Graph,
|
||
|
permitting easy exploration of the Entities & Relationships composing it.
|
||
|
|
||
|
For more information about the GraphQL specification, check out [Introduction to GraphQL](https://graphql.org/learn/).
|
||
|
|
||
|
## GraphQL Schema Reference
|
||
|
|
||
|
The Reference docs in the sidebar are generated from the DataHub GraphQL schema. Each call to the `/api/graphql` endpoint is
|
||
|
validated against this schema. You can use these docs to understand data that is available for retrieval and operations
|
||
|
that may be performed using the API.
|
||
|
|
||
|
- Available Operations: [Queries](/graphql/queries.md) (Reads) & [Mutations](/graphql/mutations.md) (Writes)
|
||
|
- Schema Types: [Objects](/graphql/objects.md), [Input Objects](/graphql/inputObjects.md), [Interfaces](/graphql/interfaces.md), [Unions](/graphql/unions.md), [Enums](/graphql/enums.md), [Scalars](/graphql/scalars.md)
|
||
|
|
||
|
## On the Horizon
|
||
|
|
||
|
The GraphQL API undergoing continuous development. A few of the things we're most excited about can be found below.
|
||
|
|
||
|
### Supporting Additional Use Cases
|
||
|
|
||
|
DataHub plans to support the following use cases via the GraphQL API:
|
||
|
|
||
|
- **Creating entities**: Programmatically creating Datasets, Dashboards, Charts, Data Flows (Pipelines), Data Jobs (Tasks) and more.
|
||
|
- **Listing entities**: Listing all Metadata Entities of a particular type.
|
||
|
- **Removing entities**: The ability to soft & hard delete Metadata Entities on DataHub.
|
||
|
|
||
|
This will enable organization's to build flows on top of DataHub for creating custom Metadata Entities,
|
||
|
extracting batch data from DataHub, and curating the Entities that are visible on the platform.
|
||
|
|
||
|
### Client SDKs
|
||
|
|
||
|
DataHub plans to develop Open Source Client SDKs for Python, Java, Javascript among others on top of this API. If you're interested
|
||
|
in contributing, [join us on Slack](https://datahubspace.slack.com/join/shared_invite/zt-nx7i0dj7-I3IJYC551vpnvvjIaNRRGw#/shared-invite/email)!
|
||
|
|
||
|
### Token Based Authentication
|
||
|
|
||
|
Add universal token based authentication and get rid of the legacy `PLAY_SESSION` session cookie and `X-DataHub-Actor` used
|
||
|
for conveying actor identity information.
|
||
|
|
||
|
## Feedback, Feature Requests, & Support
|
||
|
|
||
|
Visit our [Slack channel](https://datahubspace.slack.com/join/shared_invite/zt-nx7i0dj7-I3IJYC551vpnvvjIaNRRGw#/shared-invite/email) to ask questions, tell us what we can do better, & make requests for what you'd like to see in the future. Or just
|
||
|
stop by to say 'Hi'.
|