oData Support
Greetings - I know it's not on the roadmap at the moment, but has there been any interest in oData support for the Blackbaud Sky API? Something like this will be particularly useful for generating custom queries.
Currently, our system queries the gift endpoint to get a collection of gifts. Then, for each gift, we query the constituent endpoint to see if that particular gift is from an individual. Then, we query the campaign endpoint to learn more about the gift's campaign. We cache campaigns on our server so that we don't have to re-query the database. While all of it is doable, it's sort of inefficient and limits the scope of the service that we can offer our customers.
What I love about odata is that we can write url queries to get exactly what we need, in one call. The efficiency gains from doing something like this can allow us to broaden the scope of the service that we offer to customers and reduce server load (both on your end and our end).
What's even more awesome is that the underlying databases appear to be SQL server databases, so providing an oData service seems totally doable via Link to Entities, .Net's oData controller, and a configuration file that limits the scope of the services offered by oData. That seems to be a big payoff without having to write too much code (since Microsoft did that). To start with, perhaps that config file can limit the service to GET requests on certain entities and only join tables via indexed fields. Sounds reasonable.
Any thoughts or interest in oData?
Currently, our system queries the gift endpoint to get a collection of gifts. Then, for each gift, we query the constituent endpoint to see if that particular gift is from an individual. Then, we query the campaign endpoint to learn more about the gift's campaign. We cache campaigns on our server so that we don't have to re-query the database. While all of it is doable, it's sort of inefficient and limits the scope of the service that we can offer our customers.
What I love about odata is that we can write url queries to get exactly what we need, in one call. The efficiency gains from doing something like this can allow us to broaden the scope of the service that we offer to customers and reduce server load (both on your end and our end).
What's even more awesome is that the underlying databases appear to be SQL server databases, so providing an oData service seems totally doable via Link to Entities, .Net's oData controller, and a configuration file that limits the scope of the services offered by oData. That seems to be a big payoff without having to write too much code (since Microsoft did that). To start with, perhaps that config file can limit the service to GET requests on certain entities and only join tables via indexed fields. Sounds reasonable.
Any thoughts or interest in oData?
3
Comments
-
Greetings friends - just wanted to follow up. I keep thinking about this oData idea, and I came across a blog post that may describe the benefits more accurately.
The cool thing about oData is that you can control which features are turned on. So if you don't want users to write a bad oData query on an unindexed field (for performance reasons), you can include that in the odata configuration like this (pseudocode):
At the minimum, we'd only need oData navigation properties that link specific objects (eg. gifts->constituent->constituents->constituentcodes, gift->gift code), so that we don't have to make a lot of https get requests on a per/gift basis, so you can really limit the features in a beta v1 release.var entityTypeConfig = builder.EntitySet<SomeType>("SomeType").EntityType;<br/>entityTypeConfig.Property(x => x.SomeField);<br/>entityTypeConfig.Property(x => x.SomeField2).IsNotFilterable().IsNonFilterable();
I think something like this will result in more feature-rich integrations for all of your partners with a huge performance boost (on your servers and ours).
1 -
I'm far from an expert on this, but having poked around this issue before I can tell you what I gathered:
If you store your database locally, this is doable. Do some google searching and you should be able to find a couple community posts about it. But if you're hosted with BB, this is something that was a feature, but BB decided to stop allowing for security reasons (there was a data breach a few years ago). The only option I've been able to find for accessing hosted data is through the API endpoints.
I don't know if they're working on finding a way to reinstate this feature securely or not, but I agree that oData would be far more resource and time efficient.
0
Categories
- All Categories
- 6 Blackbaud Community Help
- 213 bbcon®
- 1.4K Blackbaud Altru®
- 402 Blackbaud Award Management™ and Blackbaud Stewardship Management™
- 1.1K Blackbaud CRM™ and Blackbaud Internet Solutions™
- 15 donorCentrics®
- 360 Blackbaud eTapestry®
- 2.6K Blackbaud Financial Edge NXT®
- 655 Blackbaud Grantmaking™
- 576 Blackbaud Education Management Solutions for Higher Education
- 3.2K Blackbaud Education Management Solutions for K-12 Schools
- 939 Blackbaud Luminate Online® and Blackbaud TeamRaiser®
- 84 JustGiving® from Blackbaud®
- 6.6K Blackbaud Raiser's Edge NXT®
- 3.7K SKY Developer
- 248 ResearchPoint™
- 119 Blackbaud Tuition Management™
- 165 Organizational Best Practices
- 241 Member Lounge (Just for Fun)
- 34 Blackbaud Community Challenges
- 34 PowerUp Challenges
- 3 (Open) PowerUp Challenge: Chat for Blackbaud AI
- 3 (Closed) PowerUp Challenge: Data Health
- 3 (Closed) Raiser's Edge NXT PowerUp Challenge: Product Update Briefing
- 3 (Closed) Raiser's Edge NXT PowerUp Challenge: Standard Reports+
- 3 (Closed) Raiser's Edge NXT PowerUp Challenge: Email Marketing
- 3 (Closed) Raiser's Edge NXT PowerUp Challenge: Gift Management
- 4 (Closed) Raiser's Edge NXT PowerUp Challenge: Event Management
- 3 (Closed) Raiser's Edge NXT PowerUp Challenge: Home Page
- 4 (Closed) Raiser's Edge NXT PowerUp Challenge: Standard Reports
- 4 (Closed) Raiser's Edge NXT PowerUp Challenge: Query
- 792 Community News
- 2.9K Jobs Board
- 53 Blackbaud SKY® Reporting Announcements
- 47 Blackbaud CRM Higher Ed Product Advisory Group (HE PAG)
- 19 Blackbaud CRM Product Advisory Group (BBCRM PAG)
