REST: How to store and reuse REST call queries
- by Jason Holland
I'm learning C# by programming a real monstrosity of an application for personal use. Part of my application uses several SPARQL queries like so:
const string ArtistByRdfsLabel = @"
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?artist
WHERE
{{
{{
?artist rdf:type <http://dbpedia.org/ontology/MusicalArtist> .
?artist rdfs:label ?rdfsLabel .
}}
UNION
{{
?artist rdf:type <http://dbpedia.org/ontology/Band> .
?artist rdfs:label ?rdfsLabel .
}}
FILTER
(
str(?rdfsLabel) = '{0}'
)
}}";
string Query = String.Format(ArtistByRdfsLabel, Artist);
I don't like the idea of keeping all these queries in the same class that I'm using them in so I thought I would just move them into their own dedicated class to remove clutter in my RestClient class.
I'm used to working with SQL Server and just wrapping every query in a stored procedure but since this is not SQL Server I'm scratching my head on what would be the best for these SPARQL queries. Are there any better approaches to storing these queries using any special C# language features (or general, non C# specific, approaches) that I may not already know about?
EDIT: Really, these SPARQL queries aren't anything special. Just blobs of text that I later want to grab, insert some parameters into via String.Format and send in a REST call. I suppose you could think of them the same as any SQL query that is kept in the application layer, I just never practiced keeping SQL queries in the application layer so I'm wondering if there are any "standard" practices with this type of thing.