I want to add a few articles (and code examples as well) about Odata support in ASP.net core so as required in CONTRIBUTING.md file for complex submissions i opened this issue to get approval for them.
what i have in mind is a simple example of adding odata capabilities on top of existing API and also some tips for scenarios which include starting a new API project with odata support from scratch.
also i come across this (https://github.com/aspnet/Docs/issues/9740) open issue about odata so i was wondering should i do it or wait for odata official team.
also i think it worth to mention that im having 1.5+ years experience with ASP.net core and 3+ years experience with C# and ASP.net mvc (.net framework) and also good understanding of odata.
@Rick-Anderson edit:
Reopen this and PR #12108 When https://github.com/MicrosoftDocs/OData-docs/pull/74 is merged. Look for closed issues with ODATA in:title
@FIVIL thanks for checking first. @blowdart and @HaoK will make that decision. They'll probably want an outline before you start.
As long as the security implications and mitigations are covered I have no problems.
@FIVIL can you post an outline here?
@Rick-Anderson Sure.
as i mentioned earlier what i have in mind contains two separate parts which are
for the first one i do not intend going into details so ill make a single article .
in this single article i will explain how you can add OData support to your existing API with as less modification as possible in your codebase without breaking the existing API routes with backward compatibilities.
in this article i will expand this already existing project in docs, though i might change the model class for better demonstration of OData capabilities by adding some new properties
the outline will look like this:
routeBuilder.EnableDependencyInjection();-also i will add some code examples and i might include some screenshots from postman to showing the result of invoking the API
for the second part i intend to make a couple of articles and in them i will go further into details and internals of OData
Outline:
article number 1 -> Overview : what the end result would look like and link to other articles in this series
article number 2 -> complete introduction to OData, explaining that how OData is actually a open specification and .net core libraries, also i will dive into query language and functionalities of OData
article number 3 -> Getting Started
article number 4 -> adding model classes:
in this step i will use the contos university example which is a well understood example from MS
article number 5 -> Configuring Database:
article number 6 -> Configurations of the project:
article number 7 -> Scaffolding
article number 8 -> Pushing some data into API
article number 9 -> Examples:
article number 10 -> Security concerns
so im expecting to do this in at least 3 RRs one for article number 1, one for series of articles in 2nd part and one last PR for code examples
Looks good to me.
@blowdart and @HaoK any comments on the outline?
@FIVIL would you be interested in helping @guardrex with #5106?
@Rick-Anderson Sure, honestly im having some spare time within next few month and i want to get best out of it by contributing to aspnet repos, so im open to help with any task that can be done by community.
also im waiting for @blowdart and @HaoK approval for OData doc outline so i can get started on them as well.
I think #5106 provides what I need to perform the update. Within Tratcher's remarks, I see about three aspects missing from the topic. @FIVIL, I'll ping u on the PR to review it if you have time.
@guardrex sounds great to me, so im waiting to hear from you.
@FIVIL ping me next week if @blowdart doesn't approve your outline. @scottaddie / @danroth27 please review outline.
Harsh but fair @Rick-Anderson.
Security to 10 maybe? My concern here is, for example, someone reads enough to expose their data because that's what they want to do, without understanding they now have a DoS vector or Information Leak via joins.
Notes in each section to the security section would work though, so no objections to the outline
@blowdart sure, ill keep your notes in mind.
so im trying to deliver first draft as soon as possible.
@Rick-Anderson
I'm done with the first set of tutorials, however, I will cover more materials in the next set of articles.
you can check out the sample files in:
https://github.com/FIVIL/AspNetCore.Docs/tree/OData/aspnetcore/tutorials/first-odata-api/samples/2.2/TodoApi
and markdown file in:
https://github.com/FIVIL/AspNetCore.Docs/blob/OData/aspnetcore/tutorials/first-odata-api.md
and tell me if they are Ok, so i can send a PR, or if they need any changes
TNX
@FIVIL looks great. Create a PR then I'll submit some commits to your branch for minor edits.
@FIVIL when you submit the PR, @mention me only so I have a chance to make some edits, then we can mention @blowdart
@FIVIL I moved two of them over - see https://docs.microsoft.com/en-us/odata/webapi/odata-expand
The last one is in PR at https://github.com/MicrosoftDocs/OData-docs/pull/83
Most helpful comment
Harsh but fair @Rick-Anderson.
Security to 10 maybe? My concern here is, for example, someone reads enough to expose their data because that's what they want to do, without understanding they now have a DoS vector or Information Leak via joins.
Notes in each section to the security section would work though, so no objections to the outline