{"componentChunkName":"component---src-templates-modal-page-js","path":"/category/utilities/elide","result":{"pageContext":{"node":{"slug":{"current":"elide"},"name":"Elide","githubUrl":"https://github.com/yahoo/elide","description":"A Java library that can expose a JPA annotated data model as a GraphQL service over any relational database.","developer":null,"price":"Free","url":"https://elide.io/","tags":[{"id":"39577cc9-6ff2-505d-9a2b-8fae416ca2ef","name":"Java","slug":{"current":"java"}}],"logo":{"asset":{"url":"https://cdn.sanity.io/images/g5bd2nk6/production/172aadb5335f32cdae9a0daa1057371912970477-122x42.svg"}},"categories":[{"name":"Utilities","slug":{"current":"utilities"}}],"_rawContent":[{"_key":"7e8c13548315","_type":"block","children":[{"_key":"7e8c135483150","_type":"span","marks":[],"text":"Elide is a Java library that lets you set up a GraphQL or JSON API web service with minimal effort starting from a JPA annotated data model."}],"markDefs":[],"style":"normal"},{"_key":"60f5a786b49f","_type":"block","children":[{"_key":"60f5a786b49f0","_type":"span","marks":[],"text":"Elide supports a number of features:"}],"markDefs":[],"style":"normal"},{"_key":"32c7713a803d","_type":"block","children":[{"_key":"32c7713a803d0","_type":"span","marks":[],"text":"Security Comes Standard"}],"markDefs":[],"style":"h3"},{"_key":"e363d128f00b","_type":"block","children":[{"_key":"e363d128f00b0","_type":"span","marks":[],"text":"Control access to fields and entities through a declarative, intuitive permission syntax."}],"markDefs":[],"style":"normal"},{"_key":"709999cca3e5","_type":"block","children":[{"_key":"709999cca3e50","_type":"span","marks":[],"text":"Mobile Friendly APIs"}],"markDefs":[],"style":"h3"},{"_key":"c22bb22a19d0","_type":"block","children":[{"_key":"c22bb22a19d00","_type":"span","marks":[],"text":"JSON-API & GraphQL lets developers fetch entire object graphs in a single round trip. Only requested elements of the data model are returned. Our opinionated approach for mutations addresses common application scenarios:"}],"markDefs":[],"style":"normal"},{"_key":"20871d9883a6","_type":"block","children":[{"_key":"20871d9883a60","_type":"span","marks":[],"text":"Create a new object and add it to an existing collection in the same operation."}],"level":1,"listItem":"bullet","markDefs":[],"style":"normal"},{"_key":"09269efb19d6","_type":"block","children":[{"_key":"09269efb19d60","_type":"span","marks":[],"text":"Create a set of related, composite objects (a subgraph) and connect it to an existing, persisted graph."}],"level":1,"listItem":"bullet","markDefs":[],"style":"normal"},{"_key":"890d42a14be0","_type":"block","children":[{"_key":"890d42a14be00","_type":"span","marks":[],"text":"Differentiate between deleting an object vs disassociating an object from a relationship (but not deleting it)."}],"level":1,"listItem":"bullet","markDefs":[],"style":"normal"},{"_key":"e78a3580e79c","_type":"block","children":[{"_key":"e78a3580e79c0","_type":"span","marks":[],"text":"Change the composition of a relationship to something different."}],"level":1,"listItem":"bullet","markDefs":[],"style":"normal"},{"_key":"4b7cb590d7c6","_type":"block","children":[{"_key":"4b7cb590d7c60","_type":"span","marks":[],"text":"Reference a newly created object inside other mutation operations."}],"level":1,"listItem":"bullet","markDefs":[],"style":"normal"},{"_key":"ae177c393d6f","_type":"block","children":[{"_key":"ae177c393d6f0","_type":"span","marks":[],"text":"Filtering, sorting, and pagination are supported out of the box."}],"markDefs":[],"style":"normal"},{"_key":"db00e18e573b","_type":"block","children":[{"_key":"db00e18e573b0","_type":"span","marks":[],"text":"Atomicity For Complex Writes"}],"markDefs":[],"style":"h3"},{"_key":"713d87d7d387","_type":"block","children":[{"_key":"713d87d7d3870","_type":"span","marks":[],"text":"Elide supports multiple data model mutations in a single request in either JSON-API or GraphQL. Create objects, add them to relationships, modify or delete together in a single atomic request."}],"markDefs":[],"style":"normal"},{"_key":"c6d4f886cf36","_type":"block","children":[{"_key":"c6d4f886cf360","_type":"span","marks":[],"text":"Persistence Layer Agnostic"}],"markDefs":[],"style":"h3"},{"_key":"e0a0feb622ca","_type":"block","children":[{"_key":"e0a0feb622ca0","_type":"span","marks":[],"text":"Elide is agnostic to your particular persistence strategy. Use an ORM or provide your own implementation of a data store."}],"markDefs":[],"style":"normal"},{"_key":"0bef36490faf","_type":"block","children":[{"_key":"0bef36490faf0","_type":"span","marks":[],"text":"Schema Introspection"}],"markDefs":[],"style":"h3"},{"_key":"5e4b5f4d5026","_type":"block","children":[{"_key":"5e4b5f4d50260","_type":"span","marks":[],"text":"Explore, understand, and compose queries against your Elide API through generated Swagger documentation or GraphQL schema."}],"markDefs":[],"style":"normal"},{"_key":"34b7d99ca3bd","_type":"block","children":[{"_key":"34b7d99ca3bd0","_type":"span","marks":[],"text":"Customize"}],"markDefs":[],"style":"h3"},{"_key":"e8bc06c01824","_type":"block","children":[{"_key":"e8bc06c018240","_type":"span","marks":[],"text":"Customize the behavior of data model operations with computed attributes, data validation annotations, and request lifecycle hooks."}],"markDefs":[],"style":"normal"}]},"targetPath":"/category/utilities","modalType":"tool"}},"staticQueryHashes":[]}