Open jchannon opened 8 years ago
Hi! thanks for taking a look around!
The idea is to build a a framework (ugh) for building hypermedia applications easily, and in such a way that the entire API surface area behaves consistently. Rather than building your api in an MVC framework, this should provide a higher level abstraction.
There are kind of 4 chunks, which I'm making up names for as I type
1 Resource Meta Model - which is a dynamic representation of resources, with links to related resource and metadata to describe what methods can be performed on them, and delegates to invoke for when the methods are called 2 a 'representor *' implementation which can output the resources as siren (so far) 3 A binding to OWIN for the Resource Model 4 The secret sauce is the AutoMapper (Typed Resource Model -> Resource Meta Model Mapper/Binder,) which lets you define a Resource Model using domain-entity-like classes** which are reflected over at runtime to build the Resource Meta Model. It's not a static type -> RMM mapper though, the links/operations available can be determined depending on current server side state.
Eventually, it should be possible to get things for free like OPTIONS, rel links which auto-document themselves etc.
The example project is of course a task list (Trello style):) https://github.com/mcintyre321/HyperMapper/blob/master/HyperMapper.Examples.TaskList.ResourceModel/Board.cs
One plan is to be able to use the project to
Sorry you asked, eh? :)
*https://groups.google.com/forum/#!msg/hypermedia-web/FXy1Mcuhj_0/pPCMf4PKGJAJ ** but not a domain model as, any fule know "resource model != domain model != persistence model" (although I find they often start off as one and the same when you are prototyping things in small projects)
Hi! thanks for taking a look around!
The idea is to build a a framework (ugh) for building hypermedia applications easily, and in such a way that the entire API surface area behaves consistently. Rather than building your api in an MVC framework, this should provide a higher level abstraction.
There are kind of 4 chunks, which I'm making up names for as I type
1 Resource Meta Model - which is a dynamic representation of resources, with links to related resource and metadata to describe what methods can be performed on them, and delegates to invoke for when the methods are called 2 a 'representor' implementation which can output the resources as siren (so far) 3 A binding to OWIN for the Resource Model 4 The secret sauce is the AutoMapper (Typed Resource Model -> Resource Meta Model Mapper/Binder,) which lets you define a Resource Model using domain-entity-like classes* which are reflected over at runtime to build the Resource Meta Model. It's not a static type -> RMM mapper though, the links/operations available can be determined depending on current server side state.
Eventually, it should be possible to get things for free like OPTIONS, rel links which auto-document themselves etc.
The example project is of course a task list (Trello style):) https://github.com/mcintyre321/HyperMapper/blob/master/HyperMapper.Examples.TaskList.ResourceModel/Board.cs
One plan is to be able to use the project to
Sorry you asked, eh? :)
https://groups.google.com/forum/#!msg/hypermedia-web/FXy1Mcuhj_0/pPCMf4PKGJAJ * but not a domain model as, any fule know "resource model != domain model != persistence model" (although I find they often start off as one and the same when you are prototyping things in small projects)
On 23 October 2016 at 18:14, Jonathan Channon notifications@github.com wrote:
Hi
Just browsing, being nosy. What's this repo do? :)
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/mcintyre321/HyperMapper/issues/1, or mute the thread https://github.com/notifications/unsubscribe-auth/AAQ0-nJURwQzIOGR-TdoTQ3P49XpS-Ilks5q25XvgaJpZM4KeL5r .
Hi
Just browsing, being nosy. What's this repo do? :)