{"id":18926206,"url":"https://github.com/graph-quilt/xtext-service-dsl","last_synced_at":"2025-10-14T12:11:26.539Z","repository":{"id":44882388,"uuid":"428514287","full_name":"graph-quilt/xtext-service-dsl","owner":"graph-quilt","description":"Service DSL is an xtext-based embeddable component for any xtext-based DSL adding capability to make a call to backend services such as REST or GraphQL.","archived":false,"fork":false,"pushed_at":"2022-09-08T17:33:38.000Z","size":1464,"stargazers_count":10,"open_issues_count":4,"forks_count":2,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-08-17T07:36:52.616Z","etag":null,"topics":["dsl","federation","graphql","rest-api","xtext","xtext-grammar"],"latest_commit_sha":null,"homepage":null,"language":"Java","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/graph-quilt.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null}},"created_at":"2021-11-16T04:16:23.000Z","updated_at":"2023-11-01T00:54:18.000Z","dependencies_parsed_at":"2022-09-11T20:30:18.477Z","dependency_job_id":null,"html_url":"https://github.com/graph-quilt/xtext-service-dsl","commit_stats":null,"previous_names":["intuit/xtext-service-dsl"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/graph-quilt/xtext-service-dsl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graph-quilt%2Fxtext-service-dsl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graph-quilt%2Fxtext-service-dsl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graph-quilt%2Fxtext-service-dsl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graph-quilt%2Fxtext-service-dsl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/graph-quilt","download_url":"https://codeload.github.com/graph-quilt/xtext-service-dsl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graph-quilt%2Fxtext-service-dsl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279019414,"owners_count":26086575,"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","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["dsl","federation","graphql","rest-api","xtext","xtext-grammar"],"created_at":"2024-11-08T11:14:58.885Z","updated_at":"2025-10-14T12:11:26.510Z","avatar_url":"https://github.com/graph-quilt.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Service DSL\n\n[Builds](https://app.circleci.com/pipelines/github/graph-quilt/xtext-service-dsl) [![CircleCI](https://circleci.com/gh/graph-quilt/xtext-service-dsl/tree/master.svg?style=shield)](https://app.circleci.com/pipelines/github/graph-quilt/xtext-service-dsl)\n\n## Overview\n\nThe project provides an xtext-based language and runtime engine for defining and executing HTTP service stub(s).  This can be used independently or imported in other Xtext DSLs projects to add capability to make a service call. This project comes with a runtime engine based on Spring Web Client. It should be easy to come up with a runtime engine using any other java based http clients.\n\nExample:\n\n```\nService SomeRestService as getSomeData method GET  {\n  Url -\u003e @Config(\"endpoint\")\n  Path -\u003e ${\"/v1/consents\"}\n  Timeout -\u003e ${@Config(\"timeout\")}\n  @Header accept -\u003e ${\"*/*\"}\n}\n```\n\nIt is up to the importing language whether to execute the service stub explicitly or implicitly.  \n\nFor now, only REST Services will be supported, but we want to support GraphQL and gRPC in the future.\n\n## Pre-requisites\n\n1. Java 8\n2. Maven 3\n\n## Making changes to Runtime\n\n* Clone this project.\n* Run `maven clean install`\n* Import the runtime module `web-client-service-evaluator`. This is standard java maven project which can be imported in your favorite java editor.\n  \n  \n## Making changes to the language\n\n#### -- Installing the Software \n\n*\tDownload and install [Eclipse](https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/2020-06/R/eclipse-jee-2020-06-R-macosx-cocoa-x86_64.dmg). You might run into a JVM error while installing. Please edit the info.plist file with your java path. [StackOverFlow Reference](https://stackoverflow.com/questions/52652846/cant-install-eclipse-failed-to-create-the-java-virtual-machine-on-mac)\n\n*\tInstall Xtext SDK in Eclipse:\n\t*\tIn Eclipse, click Help --\u003e Install New Software\n\t*\tIn Available Software, click Add to add a repository with [this location](http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/)   \n\t*\tSelect the repository just added in _Work with_ drop-down\n\t*\tSelect and install Xtext Complete SDK (2.25.0)  \n   \t\n*\tRestart Eclipse.    \n   \n#### -- Setting up the Project \n\n*\tClone this project\n*  \tImport the project in Eclipse, click File --\u003e Import Project --\u003e Maven --\u003e Existing Maven Project\n*\tUnder `com.intuit.dsl.service`, right click on [GenerateGraphQL.mwe2] --\u003e Run As --\u003e MWE2 Workflow\n* \tEdit the [Grammar](https://github.com/graph-quilt/xtext-service-dsl/blob/master/com.intuit.dsl.service.parent/com.intuit.dsl.service/src/com/intuit/dsl/Service.xtext) and perform Step 3 again.\n\n#### -- Manually building the Eclipse plugin.\n\n*\tEnsure you've setup your project following the instructions above\n*\tCreate a new \"Run Configuration\" as an \"Eclipse Application\" and name it appropriately\n*\tWhen you run this new configuration, a new Eclipse Window will open, in which you can create service files and edit them.\n\n\n## Contributing\n\nsee [Contributing](./CONTRIBUTING.md)\n\n## License\n\nsee [LICENSE](./LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgraph-quilt%2Fxtext-service-dsl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgraph-quilt%2Fxtext-service-dsl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgraph-quilt%2Fxtext-service-dsl/lists"}