All Projects → Pomona → Pomona

Pomona / Pomona

Licence: other
A fruitful way to REST

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to Pomona

react-ketting
Ketting bindings for React
Stars: ✭ 13 (-43.48%)
Mutual labels:  hypermedia, hateoas
akka-http-hal
HAL (Hypermedia Application Language) specification support for akka-http
Stars: ✭ 18 (-21.74%)
Mutual labels:  hypermedia, hateoas
lodata
The OData v4.01 Producer for Laravel
Stars: ✭ 40 (+73.91%)
Mutual labels:  odata
halfred
A parser for application/hal+json
Stars: ✭ 44 (+91.3%)
Mutual labels:  hypermedia
cloud-abap-rap
This repository contains several examples how to develop with the ABAP RESTful Application Programming Model (RAP) in SAP BTP, ABAP environment.
Stars: ✭ 98 (+326.09%)
Mutual labels:  odata
Samples-ASP.NET-MVC-CSharp
ASP.NET MVC C# samples for Stimulsoft Reports.Web reporting tool.
Stars: ✭ 31 (+34.78%)
Mutual labels:  odata
abap-odata-smoke-test
This ABAP Report performs simple smoke tests for activated ODATA services, providing basic automated testing for your ODATA endpoints.
Stars: ✭ 13 (-43.48%)
Mutual labels:  odata
odata-v4-ng
OData service for Angular
Stars: ✭ 27 (+17.39%)
Mutual labels:  odata
apim-cli
Axway API-Management CLI - Manage your platform from the command line or with your CI/CD pipeline
Stars: ✭ 25 (+8.7%)
Mutual labels:  odata
Samples-NET.Core-MVC-CSharp
ASP.NET Core 2.0 MVC C# samples for Stimulsoft Reports.Web reporting tool.
Stars: ✭ 28 (+21.74%)
Mutual labels:  odata
python-odata
A simple library for read/write access to OData services
Stars: ✭ 74 (+221.74%)
Mutual labels:  odata
slickgrid-universal
Slickgrid-Universal is a monorepo which includes all Editors, Filters, Extensions, Services and is Framework Agnostic to take full advantage of SlickGrid core lib.
Stars: ✭ 29 (+26.09%)
Mutual labels:  odata
odata-filter-builder
OData Filter Builder
Stars: ✭ 42 (+82.61%)
Mutual labels:  odata
Spring-Boot-Application-Template
Spring Boot Web App, Flyway, MySQL, H2DB, Bootstrap, Thymeleaf, JWT, Swagger, API Rate Limiting, Docker, RBAC, i18n
Stars: ✭ 90 (+291.3%)
Mutual labels:  hateoas
odata2poco
generate POCO classes from OData service
Stars: ✭ 42 (+82.61%)
Mutual labels:  odata
riskfirst.hateoas
Powerful HATEOAS functionality for .NET web api
Stars: ✭ 69 (+200%)
Mutual labels:  hateoas
advene
Official Advene repository
Stars: ✭ 32 (+39.13%)
Mutual labels:  hypermedia
json-api-serializer
Node.js/browser framework agnostic JSON API (http://jsonapi.org/) serializer.
Stars: ✭ 141 (+513.04%)
Mutual labels:  hypermedia
link-redux
Linked Data Rendering for humans with React
Stars: ✭ 28 (+21.74%)
Mutual labels:  hypermedia
hal-api
Enhances your HATEOAS experience by automating common tasks.
Stars: ✭ 32 (+39.13%)
Mutual labels:  hateoas

Pōmōna

Pomona

Pomona is a framework built for exposing a domain model in a RESTful and hypermedia-driven manner. It embraces the concept of convention over configuration, and provides opiniated defaults on how domain model objects is exposed as HTTP resources.

Pomona was born out of frustrations with the difficulties of exposing a complex business domain model as a RESTful web service.

master develop future
GitHub GitHub release - -
NuGet NuGet NuGet -
Travis Master Develop Future
AppVeyor Master Develop Future
Codefactor Codefactor Codefactor Codefactor

Table of Contents

  1. Overview
  2. Documentation
  3. Contributing
  4. Get in touch
  5. License
  6. Acknowledgements

Overview

To illustrate what Pomona does, here's a diagram:

Pomona - Overview

  1. Starting on the top left, in the client:
    1. A Linq statement is written inside a client application against a statically typed and auto-generated client library.
    2. The query is run through a Linq Provider and translated to an HTTP query string.
  2. Inside the server:
    1. The HTTP query string is received by the Pomona Server and parsed back into a Linq Expression Tree.
    2. The Linq Expression is fed through a (custom) Linq Provider that can execute it against any back-end datastore supporting Linq as a query method.
    3. The Data is mapped from Data Transfer Objects, to database objects, back into DTOs and fed through a JSON serializer.
  3. Back inside the client:
    1. The JSON is deserialized to statically typed DTOs.
    2. The DTOs are made available to the client with just the data requested with the initial .Select() statement.

This is in many ways similar to what Falcor does, only in a statically typed way tailored for .NET instead of a Promise-based approach for JavaScript.

Documentation

To get started with Pomona please read the documentation.

Contributing

Do you want to contribute to Pomona? Lovely! Contributions of any kind are highly appreciated! Just make sure you've read and agreed to the contribution guidelines before submitting a pull request.

Get in touch

License

Copyright Karsten N. Strand, Asbjørn Ulsberg, PayEx and contributors. Pomona is provided as-is under the MIT License.

Acknowledgements

Thanks to:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].