Let REST do rest : deep dive in GraphQL APIs in Python
GraphQL technology has become popular nowadays. Developers when developing REST APIs, they need to consider many points and build their APIs accordingly. There are multiple endpoints and also problems of over-fetching and under-fetching occurs. GraphQL, can solve all these and provide a new experience while building APIs. Want to know how? Want to build an API with only a single endpoint and automatic documentation?
GraphQL is a query language and uses a schema based approach. It has only one endpoint and client can request the needed data. While building APIs, schema can be fixed and teams can work independently as the structure is fixed.
There are some concepts which make GraphQL interesting such as type system, fields, object types, etc. Now the journey of building GraphQL APIs in django would be more exciting by understanding how to write queries and mutations, what are the ways for defining schema and how to incorporate authentication. Along with this, we will look into the N+1 problem of GraphQL queries and a way to optimize the graphql queries to solve this problem. By solving N+1 problem, graphql queries will be optimized and will execute in lesser time.
Also versioning of GraphQL APIs is not similar to versioning of REST APIs, it’s quite different and interesting. Only updates of schema fields are needed. Many times GraphQL is used, but in some cases REST is preferred over GraphQL.
- Introduction of GraphQL [1 minute]
- What are issues with REST? [2 minutes]
- What is the Solution : GraphQL [1 minute]
- Concepts of GraphQL (Schema, Type System, Fields, Arguments, Fragments) [3-4 minutes]
- Libraries available in Python for GraphQL [2 minutes]
- Code (Queries, Mutation, Authentication, Pagination) [7-8 minutes]
- Discuss N+1 Query problem [2 minutes]
- Possible solutions of N+1 problem [4 minutes]
- Best Practices(Versioning GraphQL API) [2 minutes]
- Cons of using GraphQL over REST [1 minute]
- Q/A [5 minutes]
Who is this talk for?
- Python developers who deal some issues with REST APIs on daily basis.
- Developers who are curious to know about GraphQL and want to acquire knowledge about developing GraphQL APIs.
- Understanding graphql and code snippets
- Able to build GraphQL APIs in a structured way on their own understanding
- Basic knowledge of Python and Django
Nisarg is currently pursuing B.Tech in the field of Information and Communication Technology(majors CS). He is also a Software Developer at Tweetozy and Co-Creator of CoursesAround product. He is passionate about technology and building solutions for real life problems. He is also interested in problem solving and building softwares which can be used by users. He always hunts and looks around for the innovative project to work on and challenge his technical skills to learn more. He mostly codes as Backend Developer and builds amazing systems.
He always tries to give back to the community by serving as a volunteer or as a committee member. He has worked with multiple startups and has also contributed to few Open Source projects. He does not restrict himself by any coding language, rather focus more on the approach of solving the problem.
- Website : http://iamnisarg.in/
- Linkedin : https://www.linkedin.com/in/nisargshah14/
- Github : https://www.github.com/nisarg1499