By using GraphQL now developers can expose database schemas as GraphQL API’s without any custom code and access real time data securely with seamless integration using modern frontend tools.
GraphQL helps in the following areas
- Modern Web and Mobile Apps rapid development
- Data federation by coming relation data with other sources such as JSON Data
- Microservices architecture in a clean, versioned manner.
In order to use GraphQL, you must install or upgrade to Oracle 23ai and you should use Oracle Rest Data services (ORDS) 23.2 version or later. Note that SQL Developer web gives us a GraphQL editor screen and by using that user can write the queries
requests
For example 1: - Simple query
SQL> CREATE TABLE emp (
emp_id NUMBER PRIMARY KEY,
name VARCHAR2(100),
salary number(10),
is_active BOOLEAN);
SQL> CREATE TABLE dept (
dept_id NUMBER PRIMARY KEY,
name VARCHAR2(100);
GraphQL Query:
query {
emp {
emp_id
name
salary
is_active
}
}
Oracle SQL equivalent query:
SQL> Select emp_id, name, salary, is_active from emp;
For example, 2: - Query filtering with arguments
GraphQL Query:
query {
emp (emp-id:12345) {
name
salary
is_active
}
}
Oracle SQL equivalent query:
SQL> Select name, salary, is_active from emp where emp_id=12345;
Example 3: Role based access control
If you have HR user and other users, you want only HR users to see the salary info but not others. By using oracle built in security your GraphQL Schema you can have these access controls.
HR User:
query {
emp {
name
salary
}
}
Other User:
query {
emp {
name
}
}
You can restrict which fields are visible depending upon the users’ roles without writing any custom logic.
Users can use the tools below to test GraphQL
1. postman with GraphQL support
2. GraphQL playground based or local
3. Apollo Studio
4. ORDS GraphQL endpoint tester
When using GraphQL, Oracle translates GraphQL into an optimized SQL Json and returns only the requested fields. The above examples demonstrate how easy it is to use GraphQL to integrate directly into the oracle stack. The Oracle 23ai enables you to build faster, less code, and deliver richer APIs directly from your database.
For example, 2: - Query filtering with arguments
GraphQL Query:
query {
emp (emp-id:12345) {
name
salary
is_active
}
}
Oracle SQL equivalent query:
SQL> Select name, salary, is_active from emp where emp_id=12345;
Example 3: Role based access control
If you have HR user and other users, you want only HR users to see the salary info but not others. By using oracle built in security your GraphQL Schema you can have these access controls.
HR User:
query {
emp {
name
salary
}
}
Other User:
query {
emp {
name
}
}
You can restrict which fields are visible depending upon the users’ roles without writing any custom logic.
Users can use the tools below to test GraphQL
1. postman with GraphQL support
2. GraphQL playground based or local
3. Apollo Studio
4. ORDS GraphQL endpoint tester
When using GraphQL, Oracle translates GraphQL into an optimized SQL Json and returns only the requested fields. The above examples demonstrate how easy it is to use GraphQL to integrate directly into the oracle stack. The Oracle 23ai enables you to build faster, less code, and deliver richer APIs directly from your database.