Introduction
TripPin is a sample service based on OData V4. Generally speaking, TripPin provides a service that can manage people's trips. The service is designed for below purposes:
- Build a service that will cover as many features for OData V4 as possible.
- Build a more real world service, and will use it to build an end-to-end ecosystem.
- Make a service reference for developers to follow when they try to build an OData service. The source code will be published soon.
We are happy to announce that the source code of TripPin implemented using Web API OData is now available at GitHub. Please take a look and provide questions or feedback.
Please play with this new sample service for OData V4. You can use it either to know more about OData or build an application upon that. If you have any problems, suggestions, bug reports for TripPin, you can join OData Mailing List to discuss about it.
Model
The class diagram below describes the model design for TripPin
Feature Coverage
As we mentioned in the introduction part, TripPin tries to cover as many features as possible. Below are the main features we covered in TripPin.
- Basic entity / complex type and their collections
For instance,
Personis an entity andCountryis a complex type.Peopleis a collection of entity andAddressInfois a collection of complex type. - Navigation property
For instance,
Friendsis a navigation property. - Singleton
Meis the Singleton - Collection property of primitive type
For instance,
Emailsis a collection property of primitive type string. - Derived entity type
For instance, entity type
Eventderives fromPlanItem. - Derived complex type
For instance, complex type
EventLocationderives fromLocation - Open entity type
For instance,
Eventis an open entity type. - Open complex type
For instance,
Locationis an open complex type. - Containment
For instance,
PersoncontainsTrips. - Functions and Actions (Bound and Unbound)
For instance, GetNearestAirport is an unbound function, GetInvolvedPeople is a function bound to
Tripand ShareTrip is an action bound toPerson. - Enum Property
Genderis an enum property. - Spatial Property
Locis a spatial property. - Media Entity
For instance,
Photois a media entity - System query options ($select, $expand, $filter, $top, $skip, $count, $orderby, $search)
- Lambda operations (any, all)
- Create, Update, Delete
- Batch
- Etag
- Async request
- Annotations
