项目作者: Pomona

项目描述 :
A fruitful way to REST
高级语言: C#
项目地址: git://github.com/Pomona/Pomona.git
创建时间: 2012-07-02T09:32:19Z
项目社区:https://github.com/Pomona/Pomona

开源协议:Other

下载


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: