GraphQL has made an excellent entree on the API scene. It is reintroducing the original concepts of RPC-style architecture with a revolutionary API consumer-oriented approach. It brought a new option to the stalled waters of RESTful APIs. But more importantly, GraphQL brought back the principal question: What is the right API architectural style for my project?
If you are building an API, this talk should give you enough of the theoretical background to make the right API-decision for your product.
In this talk, we will take a critical look at predominant API architectural style – RESTful APIs and put it in contrast to GraphQL and Hypermedia APIs. We will discuss the expected properties of distributed systems, the consequences of choosing a particular API style, and reflect these findings in the pros and cons of the popular methods.
Mocking APIs Collaboratively with PostmanNordic APIs
Postman’s Mock Servers are an excellent tool to design APIs by setting expected responses based on your API endpoints and parameters. They allow teams to be more agile by removing the need to wait for an API producer to deliver a MVP of the service. Consumers of the API can thus set their expectations on what they need from the API producer. This demo will show how you can generate mock servers in Postman from scratch, through Postman Collections and return conditional responses.
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...apidays
apidays LIVE Helsinki - APIs, Platforms, And Ecosystems - Transforming Industries And Experiences
Implementing OpenAPI and GraphQL Services with gRPC
Tim Burks, Software Engineer at Google
A survey of various tools and techniques commonly used by API craftsman. API specification languages, testing, debugging and analytics are covered.
As presented by Jason Harmon at Booz Allen Hamilton's "Distinguished Speaker Series" 3/2/2015
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...apidays
apidays LIVE Australia 2020 - Building Business Ecosystems
Have your cake and eat it too: GraphQL? REST? Why not have both!
Roy Mor, Technical Lead at Sisense
apidays LIVE Hong Kong 2021 - Multi-Protocol APIs at Scale in Adidas by Jesus...apidays
1. The document discusses the need for an integration specification to manage APIs that use multiple protocols and styles at large companies.
2. An integration specification would provide a single source of truth for technical metadata about APIs, including how they are structured, the data they manage, and how they relate to each other and enterprise data.
3. This would enable automated API discovery, integration, and management processes by describing APIs and their access to data products at an enterprise level.
GraphQL has made an excellent entree on the API scene. It is reintroducing the original concepts of RPC-style architecture with a revolutionary API consumer-oriented approach. It brought a new option to the stalled waters of RESTful APIs. But more importantly, GraphQL brought back the principal question: What is the right API architectural style for my project?
If you are building an API, this talk should give you enough of the theoretical background to make the right API-decision for your product.
In this talk, we will take a critical look at predominant API architectural style – RESTful APIs and put it in contrast to GraphQL and Hypermedia APIs. We will discuss the expected properties of distributed systems, the consequences of choosing a particular API style, and reflect these findings in the pros and cons of the popular methods.
Mocking APIs Collaboratively with PostmanNordic APIs
Postman’s Mock Servers are an excellent tool to design APIs by setting expected responses based on your API endpoints and parameters. They allow teams to be more agile by removing the need to wait for an API producer to deliver a MVP of the service. Consumers of the API can thus set their expectations on what they need from the API producer. This demo will show how you can generate mock servers in Postman from scratch, through Postman Collections and return conditional responses.
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...apidays
apidays LIVE Helsinki - APIs, Platforms, And Ecosystems - Transforming Industries And Experiences
Implementing OpenAPI and GraphQL Services with gRPC
Tim Burks, Software Engineer at Google
A survey of various tools and techniques commonly used by API craftsman. API specification languages, testing, debugging and analytics are covered.
As presented by Jason Harmon at Booz Allen Hamilton's "Distinguished Speaker Series" 3/2/2015
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...apidays
apidays LIVE Australia 2020 - Building Business Ecosystems
Have your cake and eat it too: GraphQL? REST? Why not have both!
Roy Mor, Technical Lead at Sisense
apidays LIVE Hong Kong 2021 - Multi-Protocol APIs at Scale in Adidas by Jesus...apidays
1. The document discusses the need for an integration specification to manage APIs that use multiple protocols and styles at large companies.
2. An integration specification would provide a single source of truth for technical metadata about APIs, including how they are structured, the data they manage, and how they relate to each other and enterprise data.
3. This would enable automated API discovery, integration, and management processes by describing APIs and their access to data products at an enterprise level.
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...apidays
apidays LIVE Hong Kong 2021 - API Ecosystem & Data Interchange
August 25 & 26, 2021
GraphQL : Beyond APIs, graph your enterprise
Maxime Topolov, CEO of GraphQL Portal
Check out our API conferences @ https://www.apidays.global/
GraphQL Munich Meetup #1 - How We Use GraphQL At CommercetoolsNicola Molinari
The document describes commercetools' experience with adopting GraphQL for their merchant center application. They were initially fetching category data with multiple REST requests, but were able to fetch it in one GraphQL query along with additional fields like number of subcategories and products. This solved a performance issue and allowed them to easily extend their API. They also migrated other parts of their client to use GraphQL, reducing network requests and complexity. Overall, GraphQL allowed them to optimize queries and extend their API with minimal effort.
In this talk, we shared some of our highlights of the GraphQL Europe conference.
You can see the full coverage of the conference here: https://www.graph.cool/talks/
Blood, sweat, and creating an API handbookPronovix
This talk describes the development of ABN AMRO’s API handbook, the single-source of truth for the development and management of internal and external API products.
Our company is moving towards an API-First culture and mentality. Streamlining the development process is key to enabling this. In the beginning, API development knowledge was not documented or centralized in one location. Accurate information was not available for developer teams and they were not aware of what exactly the process entailed.
My colleague and I began by making agreements on how the overall process works, describing it in an intuitive way, and then by making it open and accessible company-wide. This involved setting up and hosting face-to-face meetings or MS Teams calls with specialists to find out what was required
This talk describes our approach to gathering content from experts, defining and refining processes, obtaining feedback from readers, and redesigning the content in a more user-centric format.
Process Orchestration with Flowable and Spring BootChavdar Baikov
This document discusses process orchestration using Flowable and Spring Boot. It begins by defining what a business process is and comparing orchestration to choreography approaches. It then introduces Flowable as a lightweight open source BPMN workflow and process automation engine that can run embedded in Java applications or on servers. Key Flowable concepts are explained like process definition, tasks, gateways and deployment. The document demonstrates a sample verified phone registration process built with Flowable and Spring Boot. It concludes with some Flowable best practices.
This document outlines best practices for API design, including using proper HTTP methods, accepting and responding with JSON, using kebab-case for URLs, plural names for collections, avoiding verbs in URLs, versioning APIs with ordinal numbers, allowing filtering/sorting/pagination, handling errors gracefully, maintaining documentation, and implementing security practices like authentication, CORS, HTTPS, and rate limiting. It also recommends techniques like returning a minimal set of fields, using relations in URLs for nested resources, caching data to improve performance. The goal is to design APIs that are intuitive, secure, and high performing.
Practical Application of API-First in microservices developmentChavdar Baikov
Building complex applications using microservices-based architecture naturally involves a great amount of remote communication based on RESTful APIs. The REST APIs represent the contract of the microservice, with both external and internal stakeholders. Microservices, with poorly designed and unstable APIs, might pose a challenge for
the whole application stack, for both adoption and maintenance.
In this session, we will dig into the benefits of the API-First development approach, for designing stable, clean, and robust microservice APIs. We will showcase a practical example of how API-First development can be streamlined for developing and consuming Spring-based Java microservices, leveraging mostly free and open source technologies.
Building Front-End Web Apps that Scale talk from FED London at Yahoo! London.
Concepts and practices that fed into the workflows and application architecture that was core to the BladeRunnerJS toolkit.
Scaling Your Team With GraphQL: Why Relationships MatterJoel Bowen
Have you used GraphQL yet? If you haven't, you're likely to encounter the technology soon. If you have, you might have questions about how to scale your team and what best practices large and small companies are following. What principles should I be following when developing a new GraphQL API? What tooling is available to help me be more productive and spend less time writing boilerplate code? How can many teams with many apps across one company share one graph?
GraphQL Conf 2019 just wrapped up in Berlin where I was fortunate to hear meet thoughtful leaders on these and other subjects related to GraphQL. So, whether you're brand new to GraphQL or have an active project using GraphQL, I'd like to share some of what I have learned so you can be productive with GraphQL and your teams - while keeping relationships at the center of our work.
PiterPy #3 talk (Video: https://youtu.be/bCwSyyygSmM). Some points on RAML, general overview and takeaways based on a real project.
Presented with Dmitry Nazarov https://ru.linkedin.com/in/aspectmkn8rd/en (Part 2, as mentioned in contents)
Build pipelines with TeamCity and Kotlin DSLAnton Arhipov
- TeamCity allows building software projects and managing build pipelines for continuous integration and delivery (CI/CD)
- A build pipeline in TeamCity refers to the sequence of build steps such as compiling code, running tests, and deploying artifacts that are automatically triggered by code changes
- The document demonstrates how to define a build pipeline in TeamCity using Kotlin DSL that compiles and packages a Java application project and its dependency library project
Big ideas in small packages - How microservices helped us to scale our visionSebastian Schleicher
Blinkist started as a monolith application but transitioned to microservices as the business scaled. This allowed each part of the application to scale independently and improved development speed. Key learnings included only migrating existing features if it provided value, embracing AWS vendor lock-in while acting wisely, and building new features as microservices adhering to standards like JSON API. The monolith validated their product vision while microservices helped scale the business through a stable, automated infrastructure.
apidays LIVE Paris - Exploring an API with Blocks by Larry Klugerapidays
apidays LIVE Paris - Responding to the New Normal with APIs for Business, People and Society
December 8, 9 & 10, 2020
Exploring an API with Blocks
Larry Kluger, Lead Developer Advocate at DocuSign
This document discusses API design collaboration and proposes a solution to common problems that occur when teams design APIs in silos. The proposed solution standardizes API design templates, implements a design gap detector and centralized user management. It also automates the generation of API stubs, test cases and pipelines to enable early validation of API contracts across environments. This facilitates more automated collaboration, reduces delays and production fixes, and makes troubleshooting easier through blameless culture adoption and transparency across the end-to-end process.
Tools for designing and building great APIsKong Inc.
A review of tools that can be used to design APIs, understand how API design works and to mock infrastructure to test your assumptions.
We all know that a happy developer is a powerful ally.
The focus of this presentation is on the creation of APIs with the support of tools to achieve this. The goal is to create APIs that are simple for developers to understand and consume, powerful enough to be maintained by your business, in minutes rather than hours.
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...apidays
apidays LIVE Paris 2021 - APIs and the Future of Software
December 7, 8 & 9, 2021
Inside API delivery Pipeline, the checklist!
François Lasne, Director Open API & Open Banking at Finastra
Continuous Integration and Delivery at Shapeways (Matt Boyle)Nordic APIs
This is a session given by Matt Boyle at Nordic APIs 2016 Platform Summit on October 25th, in Stockholm Sweden.
Description:
We’ve spent a lot of time over the years at Shapeways building, honing, and improving our deployment and test process for our web properties and API. We started with straight-to-prod commits (which caused quite a bit of downtime!), graduated to working in two- and then one-week release cycles (which caused a lot of anxiety!), to where we are today: releasing 5-15 times a day, with automated testing, using continuous improvement and delivery best practices and tools. We’ve taken the complexity and anxiety out of our deployment process by implementing ChatOps, or using a bot to handle the sorts of tasks computers are great at, namely performing complex tasks repeatedly without error. This enables humans to focus on tasks that we’re uniquely suited for, namely solving complex problems and architecting reliable, resilient, and scalable solutions for our users. We’d love to share some of what we’ve learned along the way, from building automated testing tools, to selecting and implementing open-source solutions, to how we took our global deployment process from one hour to 4 minutes. We’d also like to share our vision of the future: what inspires us, what we hope to achieve in the coming weeks, months, and years, and how we’re going about doing it.
Getting Started with Spring for GraphQLVMware Tanzu
WaffleCorp is a major provider of breakfast products available direct to consumer or through our strategic partnerships. The current implementation of the e-commerce platform is a monolithic Spring MVC application that serves data through a collection of REST APIs.
Currently, the only provider of the REST API is our e-commerce web application. We've been tasked with opening up our APIs to our new iOS and Android apps, partner microservices, and IoT applications.
The issue we ran into is that a REST API is not a one-size-fits-all approach. We need a more flexible solution to meet the requirements of all of our client applications. This is a perfect use case for the speed and flexibility of GraphQL.
GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools.
In this session, you’ll learn what GraphQL is and why you should consider it in your next project. You’ll learn how to use GraphQL in your Spring Boot applications by leveraging the Spring for GraphQL project. By the end of this session, you’ll understand how to stand up a GraphQL endpoint and request the data you need, and nothing more.
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...apidays
apidays LIVE Hong Kong 2021 - API Ecosystem & Data Interchange
August 25 & 26, 2021
GraphQL : Beyond APIs, graph your enterprise
Maxime Topolov, CEO of GraphQL Portal
Check out our API conferences @ https://www.apidays.global/
GraphQL Munich Meetup #1 - How We Use GraphQL At CommercetoolsNicola Molinari
The document describes commercetools' experience with adopting GraphQL for their merchant center application. They were initially fetching category data with multiple REST requests, but were able to fetch it in one GraphQL query along with additional fields like number of subcategories and products. This solved a performance issue and allowed them to easily extend their API. They also migrated other parts of their client to use GraphQL, reducing network requests and complexity. Overall, GraphQL allowed them to optimize queries and extend their API with minimal effort.
In this talk, we shared some of our highlights of the GraphQL Europe conference.
You can see the full coverage of the conference here: https://www.graph.cool/talks/
Blood, sweat, and creating an API handbookPronovix
This talk describes the development of ABN AMRO’s API handbook, the single-source of truth for the development and management of internal and external API products.
Our company is moving towards an API-First culture and mentality. Streamlining the development process is key to enabling this. In the beginning, API development knowledge was not documented or centralized in one location. Accurate information was not available for developer teams and they were not aware of what exactly the process entailed.
My colleague and I began by making agreements on how the overall process works, describing it in an intuitive way, and then by making it open and accessible company-wide. This involved setting up and hosting face-to-face meetings or MS Teams calls with specialists to find out what was required
This talk describes our approach to gathering content from experts, defining and refining processes, obtaining feedback from readers, and redesigning the content in a more user-centric format.
Process Orchestration with Flowable and Spring BootChavdar Baikov
This document discusses process orchestration using Flowable and Spring Boot. It begins by defining what a business process is and comparing orchestration to choreography approaches. It then introduces Flowable as a lightweight open source BPMN workflow and process automation engine that can run embedded in Java applications or on servers. Key Flowable concepts are explained like process definition, tasks, gateways and deployment. The document demonstrates a sample verified phone registration process built with Flowable and Spring Boot. It concludes with some Flowable best practices.
This document outlines best practices for API design, including using proper HTTP methods, accepting and responding with JSON, using kebab-case for URLs, plural names for collections, avoiding verbs in URLs, versioning APIs with ordinal numbers, allowing filtering/sorting/pagination, handling errors gracefully, maintaining documentation, and implementing security practices like authentication, CORS, HTTPS, and rate limiting. It also recommends techniques like returning a minimal set of fields, using relations in URLs for nested resources, caching data to improve performance. The goal is to design APIs that are intuitive, secure, and high performing.
Practical Application of API-First in microservices developmentChavdar Baikov
Building complex applications using microservices-based architecture naturally involves a great amount of remote communication based on RESTful APIs. The REST APIs represent the contract of the microservice, with both external and internal stakeholders. Microservices, with poorly designed and unstable APIs, might pose a challenge for
the whole application stack, for both adoption and maintenance.
In this session, we will dig into the benefits of the API-First development approach, for designing stable, clean, and robust microservice APIs. We will showcase a practical example of how API-First development can be streamlined for developing and consuming Spring-based Java microservices, leveraging mostly free and open source technologies.
Building Front-End Web Apps that Scale talk from FED London at Yahoo! London.
Concepts and practices that fed into the workflows and application architecture that was core to the BladeRunnerJS toolkit.
Scaling Your Team With GraphQL: Why Relationships MatterJoel Bowen
Have you used GraphQL yet? If you haven't, you're likely to encounter the technology soon. If you have, you might have questions about how to scale your team and what best practices large and small companies are following. What principles should I be following when developing a new GraphQL API? What tooling is available to help me be more productive and spend less time writing boilerplate code? How can many teams with many apps across one company share one graph?
GraphQL Conf 2019 just wrapped up in Berlin where I was fortunate to hear meet thoughtful leaders on these and other subjects related to GraphQL. So, whether you're brand new to GraphQL or have an active project using GraphQL, I'd like to share some of what I have learned so you can be productive with GraphQL and your teams - while keeping relationships at the center of our work.
PiterPy #3 talk (Video: https://youtu.be/bCwSyyygSmM). Some points on RAML, general overview and takeaways based on a real project.
Presented with Dmitry Nazarov https://ru.linkedin.com/in/aspectmkn8rd/en (Part 2, as mentioned in contents)
Build pipelines with TeamCity and Kotlin DSLAnton Arhipov
- TeamCity allows building software projects and managing build pipelines for continuous integration and delivery (CI/CD)
- A build pipeline in TeamCity refers to the sequence of build steps such as compiling code, running tests, and deploying artifacts that are automatically triggered by code changes
- The document demonstrates how to define a build pipeline in TeamCity using Kotlin DSL that compiles and packages a Java application project and its dependency library project
Big ideas in small packages - How microservices helped us to scale our visionSebastian Schleicher
Blinkist started as a monolith application but transitioned to microservices as the business scaled. This allowed each part of the application to scale independently and improved development speed. Key learnings included only migrating existing features if it provided value, embracing AWS vendor lock-in while acting wisely, and building new features as microservices adhering to standards like JSON API. The monolith validated their product vision while microservices helped scale the business through a stable, automated infrastructure.
apidays LIVE Paris - Exploring an API with Blocks by Larry Klugerapidays
apidays LIVE Paris - Responding to the New Normal with APIs for Business, People and Society
December 8, 9 & 10, 2020
Exploring an API with Blocks
Larry Kluger, Lead Developer Advocate at DocuSign
This document discusses API design collaboration and proposes a solution to common problems that occur when teams design APIs in silos. The proposed solution standardizes API design templates, implements a design gap detector and centralized user management. It also automates the generation of API stubs, test cases and pipelines to enable early validation of API contracts across environments. This facilitates more automated collaboration, reduces delays and production fixes, and makes troubleshooting easier through blameless culture adoption and transparency across the end-to-end process.
Tools for designing and building great APIsKong Inc.
A review of tools that can be used to design APIs, understand how API design works and to mock infrastructure to test your assumptions.
We all know that a happy developer is a powerful ally.
The focus of this presentation is on the creation of APIs with the support of tools to achieve this. The goal is to create APIs that are simple for developers to understand and consume, powerful enough to be maintained by your business, in minutes rather than hours.
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...apidays
apidays LIVE Paris 2021 - APIs and the Future of Software
December 7, 8 & 9, 2021
Inside API delivery Pipeline, the checklist!
François Lasne, Director Open API & Open Banking at Finastra
Continuous Integration and Delivery at Shapeways (Matt Boyle)Nordic APIs
This is a session given by Matt Boyle at Nordic APIs 2016 Platform Summit on October 25th, in Stockholm Sweden.
Description:
We’ve spent a lot of time over the years at Shapeways building, honing, and improving our deployment and test process for our web properties and API. We started with straight-to-prod commits (which caused quite a bit of downtime!), graduated to working in two- and then one-week release cycles (which caused a lot of anxiety!), to where we are today: releasing 5-15 times a day, with automated testing, using continuous improvement and delivery best practices and tools. We’ve taken the complexity and anxiety out of our deployment process by implementing ChatOps, or using a bot to handle the sorts of tasks computers are great at, namely performing complex tasks repeatedly without error. This enables humans to focus on tasks that we’re uniquely suited for, namely solving complex problems and architecting reliable, resilient, and scalable solutions for our users. We’d love to share some of what we’ve learned along the way, from building automated testing tools, to selecting and implementing open-source solutions, to how we took our global deployment process from one hour to 4 minutes. We’d also like to share our vision of the future: what inspires us, what we hope to achieve in the coming weeks, months, and years, and how we’re going about doing it.
Getting Started with Spring for GraphQLVMware Tanzu
WaffleCorp is a major provider of breakfast products available direct to consumer or through our strategic partnerships. The current implementation of the e-commerce platform is a monolithic Spring MVC application that serves data through a collection of REST APIs.
Currently, the only provider of the REST API is our e-commerce web application. We've been tasked with opening up our APIs to our new iOS and Android apps, partner microservices, and IoT applications.
The issue we ran into is that a REST API is not a one-size-fits-all approach. We need a more flexible solution to meet the requirements of all of our client applications. This is a perfect use case for the speed and flexibility of GraphQL.
GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools.
In this session, you’ll learn what GraphQL is and why you should consider it in your next project. You’ll learn how to use GraphQL in your Spring Boot applications by leveraging the Spring for GraphQL project. By the end of this session, you’ll understand how to stand up a GraphQL endpoint and request the data you need, and nothing more.
This document discusses how GraphQL and graph databases are well-suited for each other. GraphQL allows clients to request specific data in a hierarchical format, while graph databases are optimized for traversing relationships. Translating a GraphQL query to a single graph database query could prevent the "N+1 queries problem" and improve performance. The document demonstrates a proof of concept for translating GraphQL queries to queries in Neo4j and OrientDB graph databases.
In questa breve presentazione vedremo cosa è e cosa ci permette di fare GraphQL, e come questo nuovo approccio alle API possa essere integrato ad una GraphDB in modo efficiente
This document discusses API management for GraphQL APIs. It begins with an introduction to GraphQL and then covers how API management platforms can support GraphQL APIs, including developer portals, enforcing security and policies at the gateway, and analytics. Key capabilities for GraphQL API management include importing GraphQL schemas, analyzing query complexity, enforcing rate limits on operations, and providing insights into usage patterns and latency from analytics. The document emphasizes that GraphQL is a good fit for some problems but API management is still needed to maximize benefits for both GraphQL API providers and consumers.
This document provides an overview of Kotlin backend development with a focus on GraphQL and REST APIs. Key points include:
- The author has over 10 years of experience with functional reactive full stack development using Kotlin.
- GraphQL is introduced as an API format developed by Facebook that is strongly typed, self-documenting, and allows clients to specify the data they need in one request.
- Frameworks like Apollo and additional libraries can expand GraphQL's capabilities by adding features like caching, monitoring, and schema stitching.
- The author focuses on using Apollo for its support across platforms like Kotlin, JavaScript, iOS, and Android. Reasons for choosing Apollo include its wide backend support
This document discusses attacking GraphQL APIs. It begins with an overview of GraphQL, how it differs from REST APIs, and key GraphQL concepts like queries, mutations, and introspection. It then explains how introspection can be dangerous by revealing an API's schema. Various vulnerabilities are covered like information disclosure, IDOR, injections, and authorization bypass. Tools for analyzing GraphQL APIs are also listed. The document concludes with examples of exploiting common vulnerabilities like stored XSS, authorization bypass, and OS command injection.
GraphQL is an emerging API standard that provides a more flexible and alternative approach for data intensive operations. It is particularly good for querying and retrieving data in optimized forms that make applications more efficient and optimal. While GraphQL focuses on what it does best, we still need to ensure that our GraphQL services are exposed in a secure, controlled, monitored, and sometimes even in a monetized environment. This is where the inclusion of an API gateway that understands GraphQL queries, mutations, and subscriptions can add significant value.
This deck explores the following:
- Introduction to GraphQL
- Exposing GraphQL services as managed APIs
- Authentication
- Authorization
- Rate limiting
- Invoking GraphQL APIs exposed via WSO2 API Manager
Watch the webinar on-demand here - https://wso2.com/library/webinars/2019/11/exposing-graphqls-as-managed-apis/
Sashko Stubailo - The GraphQL and Apollo Stack: connecting everything togetherReact Conf Brasil
Apresentado na React Conf Brasil, em São Paulo, 7 de Outubro de 2017 #reactconfbr
I’ve been exploring the space of declarative developer tools and frameworks for over five years. Most recently, I was the founding member of the Apollo project at Meteor Development Group. My greatest passion is to make software development simpler, and enable more people to create software to bring good to the world.
https://medium.com/@stubailo
@stubailo
- Patrocínio: Pipefy, Globo.com, Meteor, Apollo, Taller, Fullcircle, Quanto, Udacity, Cubos, Segware, Entria
- Apoio: Concrete, Rung, LuizaLabs, Movile, Rivendel, GreenMile, STQ, Hi Platform
- Promoção: InfoQ, DevNaEstrada, CodamosClub, JS Ladies, NodeBR, Training Center, BrazilJS, Tableless, GeekHunter
- Afterparty: An English Thing
GraphQL is a wonderful abstraction for describing and querying data. Apollo is an ambitious project to help you build apps with GraphQL. In this talk, we'll go over how all the parts—Client, Server, Dev Tools, Codegen, and more—create an end-to-end experience for building apps on top of any data.
## Detailed description
In today's development ecosystem, there are tons of options for almost every part of your application development process: UI rendering, styling, server side rendering, build systems, type checking, databases, frontend data management, and more. However, there's one part of the stack that hasn't gotten as much love in the last decade, because it usually falls in the cracks between frontend and backend developers: Data fetching.
The most common way to load data in apps today is to use a REST API on the server and manage the data manually on the client. Whether you're using Redux, MobX, or something else, you're usually doing everything yourself—deciding when to load data, how to keep it fresh, updating the store after sending updates to the server, and more. But if you're trying to develop the best user experience for your app, all of that gets in the way; you shouldn't have to become a systems engineer to create a great frontend. The Apollo project is based on the belief that data loading doesn't have to be complicated; instead, you should be able to easily get the data you want, when you want it, and it should be managed for you just like React manages updating your UI.
Because data loading touches both the frontend and backend of your app, GraphQL and Apollo have to include many parts to fulfill that promise of being able to seamlessly connect your data together. First, we need client libraries not only for React and JavaScript, but also for native iOS and Android. Then, we must bring server-side support for GraphQL queries, mutations, and most recently subscriptions to every server technology and make those servers easier to write. And finally, we want not only all of the tools that people are used to with REST APIs, but many more thanks to all of the capabilities enabled by GraphQL.
In this talk, we'll go over all of the parts of a GraphQL-oriented app architecture, and how different GraphQL and Apollo technologies come together to solve all of the parts of data loading and management for React developers.
Introduction to Testing GraphQL PresentationKnoldus Inc.
Explore strategies and best practices for testing systems built on event-driven architecture. Learn how to ensure the reliability and responsiveness of event-driven applications through comprehensive testing methodologies.
Testing Graph QL Presentation (Test Automation)Knoldus Inc.
Discover how to test GraphQL effectively! This session dives into checking if your data queries and changes work correctly. You'll learn to ensure your data stays safe and accurate. We'll cover practical examples to help you understand these methods better by the end of our session.
The document introduces GraphQL, including how it provides a common interface for client-server data fetching and manipulation. It discusses how GraphQL addresses issues with REST APIs like multiple round trips to the server. Major GraphQL clients like Apollo are presented, as well as how to use GraphQL on the frontend with frameworks like Angular and on the backend by integrating with databases and services. New features in GraphQL like batching, deferred data, streaming, subscriptions, and IDE support are also covered.
This document provides an overview and agenda for a workshop on building a full stack GraphQL application using Neo4j AuraDB, Next.js, and Vercel. The agenda includes introductions to Neo4j AuraDB, building GraphQL APIs, Next.js, and deploying to Vercel. Hands-on exercises will have attendees create a Neo4j AuraDB instance, build GraphQL APIs backed by Neo4j, develop a Next.js frontend application, and deploy the full stack application to Vercel.
Tutorial: Building a GraphQL API in PHPAndrew Rota
This document discusses building a GraphQL API in PHP. It provides an overview of GraphQL concepts like queries, fields, types and schemas. It then outlines the steps to build a GraphQL API in PHP using the graphql-php library:
1. Define object types and the Query root type in the schema
2. Initialize the GraphQL schema instance
3. Execute GraphQL queries against the schema and return the result
By following these steps, one can build an API for querying a database of PHP conferences and speakers to understand how to build GraphQL APIs in PHP.
What if you could create a GraphQL API by combining many smaller APIs? That's what we're aiming for with schema stitching, the new feature in the Apollo graphql-tools package.
Discover how GraphQL can help you building and evolve your business APIs.
GraphQL is a query language for APIs developed internally by Facebook. It allows the developers to ask for exactly what they need and nothing more, making it easier to evolve APIs over time and create powerful developer tools around an API.
Presented by Helder Vasconcelos and Luis Gonçalves on 21st May 2019 @ Reactor Innovation Hub.
Powered by https://taikai.network
This document introduces GraphQL, describing what it is and isn't. It explains that GraphQL is not a query language like SQL, but rather specifies fields that can be resolved through code. The document provides examples of GraphQL schemas, queries, and mutations. It also discusses GraphQL integration with various technologies like Relay and Java libraries. Finally, it demonstrates GraphQL tooling like GraphiQL and an example DX integration.
Terratest - Automation testing of infrastructureKnoldus Inc.
TerraTest is a testing framework specifically designed for testing infrastructure code written with HashiCorp's Terraform. It helps validate that your Terraform configurations create the desired infrastructure, and it can be used for both unit testing and integration testing.
Getting Started with Apache Spark (Scala)Knoldus Inc.
In this session, we are going to cover Apache Spark, the architecture of Apache Spark, Data Lineage, Direct Acyclic Graph(DAG), and many more concepts. Apache Spark is a multi-language engine for executing data engineering, data science, and machine learning on single-node machines or clusters.
Secure practices with dot net services.pptxKnoldus Inc.
Securing .NET services is paramount for protecting applications and data. Employing encryption, strong authentication, and adherence to best coding practices ensures resilience against potential threats, enhancing overall cybersecurity posture.
Distributed Cache with dot microservicesKnoldus Inc.
A distributed cache is a cache shared by multiple app servers, typically maintained as an external service to the app servers that access it. A distributed cache can improve the performance and scalability of an ASP.NET Core app, especially when the app is hosted by a cloud service or a server farm. Here we will look into implementation of Distributed Caching Strategy with Redis in Microservices Architecture focusing on cache synchronization, eviction policies, and cache consistency.
Introduction to gRPC Presentation (Java)Knoldus Inc.
gRPC, which stands for Remote Procedure Call, is an open-source framework developed by Google. It is designed for building efficient and scalable distributed systems. gRPC enables communication between client and server applications by defining a set of services and message types using Protocol Buffers (protobuf) as the interface definition language. gRPC provides a way for applications to call methods on a remote server as if they were local procedures, making it a powerful tool for building distributed and microservices-based architectures.
Using InfluxDB for real-time monitoring in JmeterKnoldus Inc.
Explore the integration of InfluxDB with JMeter for real-time performance monitoring. This session will cover setting up InfluxDB to capture JMeter metrics, configuring JMeter to send data to InfluxDB, and visualizing the results using Grafana. Learn how to leverage this powerful combination to gain real-time insights into your application's performance, enabling proactive issue detection and faster resolution.
Intoduction to KubeVela Presentation (DevOps)Knoldus Inc.
KubeVela is an open-source platform for modern application delivery and operation on Kubernetes. It is designed to simplify the deployment and management of applications in a Kubernetes environment. KubeVela is a modern software delivery platform that makes deploying and operating applications across today's hybrid, multi-cloud environments easier, faster and more reliable. KubeVela is infrastructure agnostic, programmable, yet most importantly, application-centric. It allows you to build powerful software, and deliver them anywhere!
Stakeholder Management (Project Management) PresentationKnoldus Inc.
A stakeholder is someone who has an interest in or who is affected by your project and its outcome. This may include both internal and external entities such as the members of the project team, project sponsors, executives, customers, suppliers, partners and the government. Stakeholder management is the process of managing the expectations and the requirements of these stakeholders.
Introduction To Kaniko (DevOps) PresentationKnoldus Inc.
Kaniko is an open-source tool developed by Google that enables building container images from a Dockerfile inside a Kubernetes cluster without requiring a Docker daemon. Kaniko executes each command in the Dockerfile in the user space using an executor image, which runs inside a container, such as a Kubernetes pod. This allows building container images in environments where the user doesn’t have root access, like a Kubernetes cluster.
Efficient Test Environments with Infrastructure as Code (IaC)Knoldus Inc.
In the rapidly evolving landscape of software development, the need for efficient and scalable test environments has become more critical than ever. This session, "Streamlining Development: Unlocking Efficiency through Infrastructure as Code (IaC) in Test Environments," is designed to provide an in-depth exploration of how leveraging IaC can revolutionize your testing processes and enhance overall development productivity.
Exploring Terramate DevOps (Presentation)Knoldus Inc.
Terramate is a code generator and orchestrator for Terraform that enhances Terraform's capabilities by adding features such as code generation, stacks, orchestration, change detection, globals, and more . It's primarily designed to help manage Terraform code at scale more efficiently . Terramate is particularly useful for managing multiple Terraform stacks, providing support for change detection and code generation 2. It allows you to create relationships between stacks to improve your understanding and control over your infrastructure . One of the key features of Terramate is its ability to detect changes at both the stack and module level. This capability allows you to identify which stacks and resources have been altered and selectively determine where you should execute commands.
Clean Code in Test Automation Differentiating Between the Good and the BadKnoldus Inc.
This session focuses on the principles of writing clean, maintainable, and efficient code in the context of test automation. The session will highlight the characteristics that distinguish good test automation code from bad, ultimately leading to more reliable and scalable testing frameworks.
Integrating AI Capabilities in Test AutomationKnoldus Inc.
Explore the integration of artificial intelligence in test automation. Understand how AI can enhance test planning, execution, and analysis, leading to more efficient and reliable testing processes. Explore the cutting-edge integration of Artificial Intelligence (AI) capabilities in Test Automation, a transformative approach shaping the future of software testing. This session will delve into practical applications, benefits, and considerations associated with infusing AI into test automation workflows.
State Management with NGXS in Angular.pptxKnoldus Inc.
NGXS is a state management pattern and library for Angular. NGXS acts as a single source of truth for your application's state - providing simple rules for predictable state mutations. In this session we will go through the main for components of NGXS -Store, Actions, State, and Select.
Authentication in Svelte using cookies.pptxKnoldus Inc.
Svelte streamlines authentication with cookies, offering a secure and seamless user experience. Effortlessly manage sessions by storing tokens in cookies, ensuring persistent logins. With Svelte's simplicity, implement robust authentication mechanisms, enhancing user security and interaction.
OAuth2 Implementation Presentation (Java)Knoldus Inc.
The OAuth 2.0 authorization framework is a protocol that allows a user to grant a third-party web site or application access to the user's protected resources, without necessarily revealing their long-term credentials or even their identity. It is commonly used in scenarios such as user authentication in web and mobile applications and enables a more secure and user-friendly authorization process.
Supply chain security with Kubeclarity.pptxKnoldus Inc.
Kube clarity is a comprehensive solution designed to enhance supply chain security within Kubernetes environments. Kube clarity enables organizations to identify and mitigate potential security threats throughout the software development and deployment process.
Mastering Web Scraping with JSoup Unlocking the Secrets of HTML ParsingKnoldus Inc.
In this session, we will delve into the world of web scraping with JSoup, an open-source Java library. Here we are going to learn how to parse HTML effectively, extract meaningful data, and navigate the Document Object Model (DOM) for powerful web scraping capabilities.
Akka gRPC Essentials A Hands-On IntroductionKnoldus Inc.
Dive into the fundamental aspects of Akka gRPC and learn to leverage its power in building compact and efficient distributed systems. This session aims to equip attendees with the essential skills and knowledge to leverage Akka and gRPC effectively in building robust, scalable, and distributed applications.
Entity Core with Core Microservices.pptxKnoldus Inc.
How Developers can use Entity framework(ORM) which provides a structured and consistent way for microservices to interact with their respective database, prompting independence, scaliblity and maintainiblity in a distributed system, and also provide a high-level abstraction for data access.
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
Digital Marketing Trends in 2024 | Guide for Staying AheadWask
https://www.wask.co/ebooks/digital-marketing-trends-in-2024
Feeling lost in the digital marketing whirlwind of 2024? Technology is changing, consumer habits are evolving, and staying ahead of the curve feels like a never-ending pursuit. This e-book is your compass. Dive into actionable insights to handle the complexities of modern marketing. From hyper-personalization to the power of user-generated content, learn how to build long-term relationships with your audience and unlock the secrets to success in the ever-shifting digital landscape.
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/building-and-scaling-ai-applications-with-the-nx-ai-manager-a-presentation-from-network-optix/
Robin van Emden, Senior Director of Data Science at Network Optix, presents the “Building and Scaling AI Applications with the Nx AI Manager,” tutorial at the May 2024 Embedded Vision Summit.
In this presentation, van Emden covers the basics of scaling edge AI solutions using the Nx tool kit. He emphasizes the process of developing AI models and deploying them globally. He also showcases the conversion of AI models and the creation of effective edge AI pipelines, with a focus on pre-processing, model conversion, selecting the appropriate inference engine for the target hardware and post-processing.
van Emden shows how Nx can simplify the developer’s life and facilitate a rapid transition from concept to production-ready applications.He provides valuable insights into developing scalable and efficient edge AI solutions, with a strong focus on practical implementation.
Webinar: Designing a schema for a Data WarehouseFederico Razzoli
Are you new to data warehouses (DWH)? Do you need to check whether your data warehouse follows the best practices for a good design? In both cases, this webinar is for you.
A data warehouse is a central relational database that contains all measurements about a business or an organisation. This data comes from a variety of heterogeneous data sources, which includes databases of any type that back the applications used by the company, data files exported by some applications, or APIs provided by internal or external services.
But designing a data warehouse correctly is a hard task, which requires gathering information about the business processes that need to be analysed in the first place. These processes must be translated into so-called star schemas, which means, denormalised databases where each table represents a dimension or facts.
We will discuss these topics:
- How to gather information about a business;
- Understanding dictionaries and how to identify business entities;
- Dimensions and facts;
- Setting a table granularity;
- Types of facts;
- Types of dimensions;
- Snowflakes and how to avoid them;
- Expanding existing dimensions and facts.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfChart Kalyan
A Mix Chart displays historical data of numbers in a graphical or tabular form. The Kalyan Rajdhani Mix Chart specifically shows the results of a sequence of numbers over different periods.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
2. Lack of etiquette and manners is a huge turn off.
KnolX Etiquettes
Punctuality
Respect Knolx session timings, you
are requested not to join sessions
after a 5 minutes threshold post
the session start time.
Feedback
Make sure to submit a constructive
feedback for all sessions as it is
very helpful for the presenter.
Silent Mode
Please keep your screen on mute,
until it's necessary
Avoid Distraction
Be along with the presenter during
the session and enjoy.
4. What is GraphQL?
● GraphQL is a query language for your API .
● “QL” stands for Query Language.
● GraphQL was developed internally by Facebook in 2012 before being
publicly released in 2015.
5.
6. Disadvantages over REST
● Using Graphql in simple application is hectic.
● When we needs to query asking for a lot of fields and resources.
● schemas are static and the response the clients are going to get
depends on the schema definition and the query they make.
7. GraphQL Schema
● GraphQL API has a schema that defines each field that can be
queried(i.e, “payload”).
● It is not JSON (even though it looks deliberately similar), it is a GraphQL
schema.
● It defines each field that can be queried or mutated and what types
those fields are.
8. GraphQL Schema
type Query {
songById(id: ID): Song
}
type Song {
id: ID
name: String
genre: String
artist: Artist
}
type Artist {
id: ID
firstName: String
lastName: String
}
9. GraphQL Datafetchers
● Data Fetcher is probably the most important concept for a GraphQL.
● A Data Fetcher is used to fetch data when it is executed in query. And
whenever a query is executed GraphQL calls appropriate DataFetcher
to get the data.
● It is an interface with a single method, taking a single argument of
type.