Merging SHEProf API DB SHElikes https://www.freepik.com/free-vector/attractive-online-curriculum-template_23 33343.htm#query=profile%20ui&position=13&from_view=search&track=ais Freepik It's a part of our learning service, a service similar to LinkedIn where users can view each other's profiles. Users can enter their key attributes and create a simple resume, highlighting their strengths.
Merging SHE WORKS API DB SHE WORKS https://www.freepik.com/free-photo/application-form-employme nt-document-concept_18138154.htm#query=applicant%20for m&position=23&from_view=search&track=ais on Freepik It's a service that connects companies with learners. For instance, companies can initiate competitions for specific jobs, and learners can apply based on their own achievements and work.
Merging SHE WORKS API DB SHE WORKS https://www.freepik.com/free-photo/application-form-employme nt-document-concept_18138154.htm#query=applicant%20for m&position=23&from_view=search&track=ais on Freepik what is your profile URL? Learners need to include the URL to their own profile when applying to companies. Unfortunately, sometimes users make mistakes in this process, which can result in missed job opportunities.
Merging SHE WORKS API DB SHE WORKS https://www.freepik.com/free-photo/application-form-employme nt-document-concept_18138154.htm#query=applicant%20for m&position=23&from_view=search&track=ais on Freepik what is your profile URL? Learners need to include the URL to their own profile when applying to companies. Unfortunately, sometimes users make mistakes in this process, which can result in missed job opportunities. How can we address this issue?
Merging SHE WORKS API DB SHE WORKS SHEProf API DB We should use GraphQL Stitching to connect both SHEProf API and SHE Works API. We call this server as “GraphQL Gateway”. GraphQL Gateway
Merging The implementation of the Gateway was done using the following steps: 1. Implemented a query that outputs the schema as a string, called '_sdl Query,' for each Sub GraphQL API. 2. Used this information to retrieve the schema for each Sub GraphQL API within the GraphQL Gateway. 3. Finally, used the stitchSchemas function to generate the schema for the GraphQL Gateway. See the sample implementation -> https://the-guild.dev/graphql/stitching/docs/approaches/stitching-directives
Stitching, we were able to connect two Sub GraphQL APIs. The next step is to retrieve the desired data without creating a new query by utilizing Type Merging. SHE WORKS API SHEProf API Type User { id profile: Profile } type Profile { userId profileUrl } Type User { id } Query { getUser(id: String): User }
API SHEProf API Type User { id profile: Profile } type Profile { userId profileUrl } Type User { id } Query { getUser(id: String): User } Gateway API Type User { id profile: Profile 👀 } type Profile { userId profileUrl } Query { getUser(id: String!): User 👀 }
API SHEProf API Type User { id profile: Profile } type Profile { userId profileUrl } Type User { id } Query { getUser(id: String): User } Gateway API Type User { id profile: Profile 👀 } type Profile { userId profileUrl } Query { getUser(id: String!): User 👀 } How can we merge types?
merge types with Type Merging. https://the-guild.dev/graphql/stitching/docs/approaches/type-merging 1. Define merge configuration in the GraphQL Gateway Schmea 2. Define merge configuration in the each Sub GraphQL Schema with directive
merge types with Type Merging. https://the-guild.dev/graphql/stitching/docs/approaches/type-merging 1. Define merge configuration in the GraphQL Gateway Schmea 2. Define merge configuration in the each Sub GraphQL Schema with directive
merge types with Type Merging. https://the-guild.dev/graphql/stitching/docs/approaches/type-merging 1. Define merge configuration in the GraphQL Gateway Schmea 2. Define merge configuration in the each Sub GraphQL Schema with directive
“Typem merging configuration” If we use “directive” on the each sub GraphQL API Schema. 👍 We don’t need to touch GraphQL Gateway. So, the each team can implement their functions separately. 👍 Defining with “directives” seems to be simple. 😓 Since you don't actually see the integrated schema in the Gateway, as the system scales up, there may be cases where it doesn't work correctly, and it's difficult to understand why.
“Typem merging configuration” If we use “directive” on the each sub GraphQL API Schema. 👍 We don’t need to touch GraphQL Gateway. So, the each team can implement their functions separately. 👍 Defining with “directives” seems to be simple. 😓 Since you don't actually see the integrated schema in the Gateway, as the system scales up, there may be cases where it doesn't work correctly, and it's difficult to understand why. If you have a opinion or good idea let’s discuss later!
Schema to other teams. We should prepare like the following Schema for the GraphQL Gateway even though we don’t use it for the Sub API GraphQL. Query { getUser(id: String!): User }
Schema to other teams. We should prepare like the following Schema for the GraphQL Gateway even though we don’t use it for the Sub API GraphQL. Query { getUser(id: String!): User } Is there any “eslint” staff to restrict the developers to follow the regurgitation or defect standard? If you have any thoughts, please let me know!
GraphQL Stitching? I encountered cases where I couldn't pinpoint where the issue was occurring during the actual implementation. Sub GraphQL Schema GraphQL Gateway Resolvers
GraphQL Stitching? I encountered cases where I couldn't pinpoint where the issue was occurring during the actual implementation. Sub GraphQL Schema GraphQL Gateway Resolvers 🙃 The Gateway send collect queries?
GraphQL Stitching? Personally, I checked the executor function to find what query is executed. But I believe there are more efficient way to do debug. I will deeply look into the issues, but if you have a time. Let’s discuss!