{"id":13881037,"url":"https://github.com/dataleonlabs/yap","last_synced_at":"2025-07-16T17:31:40.310Z","repository":{"id":40291011,"uuid":"226938467","full_name":"dataleonlabs/yap","owner":"dataleonlabs","description":"Open source API Gateway on GraphQL for serverless. Less code, safer API. 💪","archived":false,"fork":false,"pushed_at":"2023-01-24T01:40:06.000Z","size":1745,"stargazers_count":111,"open_issues_count":24,"forks_count":13,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-10-15T04:32:54.882Z","etag":null,"topics":["api","api-gateway","graphql","lambda-functions","nodejs","serverless","serverless-functions","typescript","xml-policies"],"latest_commit_sha":null,"homepage":"https://manual.youngapp.co/community/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dataleonlabs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-12-09T18:20:39.000Z","updated_at":"2024-09-16T22:21:57.000Z","dependencies_parsed_at":"2023-02-03T11:16:21.426Z","dependency_job_id":null,"html_url":"https://github.com/dataleonlabs/yap","commit_stats":null,"previous_names":["youngapp/yap"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dataleonlabs%2Fyap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dataleonlabs%2Fyap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dataleonlabs%2Fyap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dataleonlabs%2Fyap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dataleonlabs","download_url":"https://codeload.github.com/dataleonlabs/yap/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226153553,"owners_count":17581926,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","api-gateway","graphql","lambda-functions","nodejs","serverless","serverless-functions","typescript","xml-policies"],"created_at":"2024-08-06T08:03:49.865Z","updated_at":"2024-11-24T10:30:29.950Z","avatar_url":"https://github.com/dataleonlabs.png","language":"TypeScript","readme":"We love contributors, you can contribute or click ⭐️ (see above :arrow_upper_right:) to support us. Follow our news 🏅 on [Twitter](https://twitter.com/youngapp_pf) and [Slack](https://join.slack.com/t/yapcommunity/shared_invite/enQtOTA2NTcxNjc1OTI2LTA3YmNjMWRhY2E1NjdkODE2MjU4ZTcxZmU0ZmYyMzkyMDliYjM3Nzk4YzI1NTEzYjA1MjYxNWJlNGFlMjIzMDY).\n\n# Less code, safer API.\n[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/youngapp/yap/blob/master/CONTRIBUTING.md) ![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/youngapp/yap/PublishNPM/master) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/570597c92b1e4ca9b67b2a49d9c2aa51)](https://www.codacy.com/gh/youngapp/yap?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=youngapp/yap\u0026amp;utm_campaign=Badge_Grade) ![GitHub last commit](https://img.shields.io/github/last-commit/youngapp/yap) [![Requirements Status](https://requires.io/github/youngapp/yap/requirements.svg?branch=master)](https://requires.io/github/youngapp/yap/requirements/?branch=master)\n\nYap is the lightweight microservices API gateway with GraphQL that shines at the heart of any microservices or serverless architecture, which aims to be a smaller, more expressive, and more robust foundation with low-code approach and security entreprise-gradle.\n\nPlease distinguish **Yap** (the core project of Young App) and **YAP** (the platform of Young App).\n\n## Motivation\nYoung App helps to automate business workflows across cloud and on-premise apps providing employees with prompt communication and building in teams sophisticated collaboration. As an illustration, YAP automates quotes processing for cash business, which may involve multiple apps.\n\nWithout API Management, we are using Express, Koa or Hapi on Nodejs without security handler, and all others NodeJS frameworks are based on http module, yap is different, designed only for serverless functions (event-driven) and GraphQL.\n \n## Key features of Yap 🙌\nYap offers powerful, yet lightweight features that allow fine-grained control over your API ecosystem.\n\n* **Elegants XML Policies** – Policies are a powerful capability of the system that allow the publisher to change API behavior through configuration in elegants with XML\n* **GraphQL as API Gateway** – GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. Yap use only GraphQL as API Gateway.\n* **API Connectors** – YAP is the only integration platform that was built from the ground to support a single design interface for developer/IT and for citizen integrators.\n\n## Installing\nIt's an official version for JavaScript, available for Node.js backends, Serverless and AWS Lambda.\n\n###### With yarn\n```\nyarn install @youngapp/yap\n```\n\n###### With npm\n```\nnpm install @youngapp/yap\n```\n\n## Hello API\nYap application is an object containing resolvers functions and policies which are composed and executed in a stack-like manner upon request. Yap is similar to many other middleware systems that you may have encountered such as Koa, Connect.\n\n#### Minimalist application with http.Server\n```typescript\nimport { Yap } from \"@youngapp/yap\";\nimport typeDefs from \"./schema.graphql\";\nimport resolvers from \"./resolvers.ts\";\n\n// Your schema definition and resolvers GraphQL\nconst app = new Yap({ typeDefs, resolvers });\n\napp.listen(3000, () =\u003e {\n  console.log('Example app listening on port 3000!')\n})\n```\n\n#### With AWS Lambda\n```typescript\nimport { Yap } from \"@youngapp/yap\";\nimport typeDefs from \"./schema.graphql\";\nimport resolvers from \"./resolvers.ts\";\n\n// Your schema definition and resolvers GraphQL\nconst app = new Yap({ typeDefs, resolvers });\n\n// A simple handler for AWS Lambda.\nexports.handler = app.handler;\n```\n\nFind more details on [Usage guide](https://manual.youngapp.co/community/usage-and-getting-started)\n\nEnjoy 🎉\n\n\n## Documentation\n - [Usage guide](https://manual.youngapp.co/community/usage-and-getting-started)\n - [Gateway](https://manual.youngapp.co/community/application-and-middlewares)\n - [Connectors](https://manual.youngapp.co/community/connectors)\n - [Policies](https://manual.youngapp.co/community/policies)\n - [Error handling](https://manual.youngapp.co/community/error-handling)\n - [Yap for Express Users](https://manual.youngapp.co/community/faq/faq-error-policies)\n - [FAQ](https://manual.youngapp.co/community/faq/frequently-asked-questions)\n\n## Opening issues\nIf you encounter a bug with YAP, we would appreciate if you inform us about it. \nBefore opening a new issue, please go through [existing issues](https://github.com/youngapp/yap/issues)\nto find the solution right away if your problem was solved before. \n\nAttach the following details if appropriate: \n- SDK, Node.js\n- Environment and OS\n- Stack trace\n\nThe GitHub issues are intended for bug reports and feature requests. \nFor quick help and questions on using the Yap SDK for JavaScript, please use the resources listed within [Getting Help](https://github.com/youngapp/yap#getting-help) section. The time of our support experts is rushingly flying but even so, they would like to help you in time, and therefore, will appreciate your help in applying for support reasonably by providing full details and excluding duplicated issues.\n\n## Contribute\nYap is the open source and we love contributions! If you have an idea for a great improvement or spy an issue you’re keen to fix, follow our [Contributing Guide](https://github.com/youngapp/yap/blob/master/CONTRIBUTING.md).\n\nNo contribution is too small – we encourage you to provide feedback and [report issues](https://github.com/youngapp/yap/issues).\n\n## Community support 🌍\nFor general help using Yap, please refer to [the official Yap documentation](https://manual.youngapp.co/community/). For additional help, you can use one of these channels to ask a question:\n- [StackOverflow](http://stackoverflow.com/questions/tagged/yap)\n- [Slack](https://join.slack.com/t/yapcommunity/shared_invite/enQtOTA2NTcxNjc1OTI2LTA3YmNjMWRhY2E1NjdkODE2MjU4ZTcxZmU0ZmYyMzkyMDliYjM3Nzk4YzI1NTEzYjA1MjYxNWJlNGFlMjIzMDY) (Channel community)\n- [GitHub](https://github.com/youngapp/yap) (Bug reports, feature requests, contributions)\n- [Roadmap](https://github.com/youngapp/yap/projects/1) (Roadmap)\n- [Twitter](https://twitter.com/youngapp_pf) (Get the news fast)\n- [YouTube Channel](https://www.youtube.com/channel/UCPY1PeAXPQIgo29e4Z9u5cA) (Learn from Video Tutorials)\n\n## License\n\nThis SDK is distributed under Apache License 2.0. \nSee [LICENSE.txt](LICENSE.txt) for more information.\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdataleonlabs%2Fyap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdataleonlabs%2Fyap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdataleonlabs%2Fyap/lists"}