graphQL 3
Chapter 1: Intro (GraphQL Fundamentals)
In this chapter there are 4 subsections: GraphQL Fundamentals, GraphQL is the better REST, Core Concepts and Big Picture (Architecture) of GraphQL. Each section followed its title, it was imperative to understand what are the components of GraphQL as well as the history in order to understand it's progression and uses. Taking this information led to the comparison with REST and why, ultimately, GraphQL was conceived. The Core Concepts chapter helped give names to the components and share a bit more in-depth on their jobs in order to make GraphQL work the way it does.
The wrap up of this chapter was the subsection of uses of GraphQL. Looking at the capabilities of GraphQL it makes sense that Facebook conceived this framework. It can be used independently across the needs of any organization. The ability to use it with existing databases and what is already present makes it practical and efficient which was the most surprising and helpful aspect of the information provided.
Now that I have a greater understanding of its uses and the basics of GraphQL, I look forward to working on the infrastructure in more depth.
Advanced Tutorial - Clients This chapter discusses the infrastructure features as well as the client benefits for using GraphQL. It discusses two specific clients - Apollo Client and Relay which are the current GraphQL mainstays. Utilizing these with GraphQL leads to a variety of benefits such as fetching and updating data in a more declarative manner, normalizing data as it caches it and allows UI code and data requirements to work side by side are a few of these benefits.
Advanced Tutorial - Servers The use of servers "enables server developer to focus on describing data available rather than implementing and optimizing specific endpoints." This is part of the efficiency of GraphQL. The ability to use the Execution Algorithm is key to this that and the resolvers utilized. In addition, the batched resolving method makes this the most efficient way to send for queries and obtain data to date.
More GraphQL Concepts The chapter helped define areas that will be utilized throughout GraphQL. Some of the areas highlighted were those concerning fragments, arguments, aliases, object and scaler types, and enums. Each of these areas are present and useful in the finding the most efficient ways to use GraphQL. In addition, there are ways to use these so errors do not occur. I believe the most important aspect of this chapter, besides finding ways to avoid errors, was to understand that in each schema you develop you will need to define scaler and object types. This will be imperative to the GraphQL working as necessary.
Tooling & Ecosystem I found the information in this chapter to be light but imperative for the overall success of using GraphQL. Introspection is the foundation of this chapter as well as that of utilizing GraphQL to it's greatest capabilities. The other aspect that is introduced and should be looked at more closely is GraphQL Playground which seems to be vital to the success of any project using GraphQL.
Security Sadly none of the security measures are foolproof but by understanding them it is much easier to identify where you could use them and how they can help protect the server. The client is able to access the schema which is also a hindrance to the security of the API. But by understanding this it is easier to help protect your servers in the long run. After looking at timeout, max query depth, query complexity and throttling it seems that utilizing a variety of these techniques may be the most beneficial.
Common Questions & Pick a Tutorial This section just reviewed some areas that most people had questions on, such as is GraphQL a database technology (it's not) and the discussion on server-side caching. All of these were quite reasonable and helped to tie up loose ends. I do plan on moving on to the Apollo & React Tutorial which works on building a GraphQL as well.
while, i'm not finished the next steps related to graphQL server, can you help me with this task: https://github.com/GroceriStar/types/issues/11
Btw, we're trying to apply for crowdfunding, can you "star" our 2 main repositories, we need to have at least 100 stars in order to apply https://github.com/GroceriStar/groceristar https://github.com/ChickenKyiv/recipe-api-only