René's URL Explorer Experiment


Title: Streamline API surface by csantero · Pull Request #62 · JSONAPIdotNET/JSONAPI.NET · GitHub

Open Graph Title: Streamline API surface by csantero · Pull Request #62 · JSONAPIdotNET/JSONAPI.NET

X Title: Streamline API surface by csantero · Pull Request #62 · JSONAPIdotNET/JSONAPI.NET

Description: This is the first part of a refactor that I hope will make our library even simpler to setup. Rationale There are starting to become a lot of moving parts that the user has to configure to get JSONAPI.NET integrated with their project: IPluralizationService IModelManager JsonApiFormatter EnableFilteringAttribute EnableSortingAttribute EnumerateQueryableAsyncAttribute PascalizedControllerSelector ApiController-derived classes IMaterializer A lot of those components only fit together in one way, and trying to change their behavior will just break the system. For example, if you want filtering and sorting, you better remember to pass the same IModelManager instance to each of the attributes, as well as to the JsonApiFormatter. And the action filters have to be registered in the right order, since filtering should be applied before sorting (and when we introduce paging, it absolutely must take place after sorting). And then there is the async enumerator, which has to run after all the other action filters. I felt like I could internalize a lot of stuff and only expose a simple API with sensible defaults that does all of that for you. JsonApiConfiguration There is now a fluent interface for configuring JSONAPI.NET called JsonApiConfiguration. This object is responsible for setting up an HttpConfiguration object the way we need it. The user can currently use this fluent interface to disable sorting and/or filtering, and to provide a pluralization service. It also lets them opt-in to the async queryable enumerator using a fluent extension method. JsonApiQueryableAttribute I have combined the functionality of the filtering and sorting action filters into a new aggregate attribute called JsonApiQueryableAttribute. I abstracted the old filters into new constructs called IQueryableTransforms, and I pass those transforms to the JsonApiQueryableAttribute inside JsonApiConfiguration.Apply(). When we implement pagination we can make that an IQueryableTransform as well. Autofac I've taken on Autofac as a library dependency, and JsonApiConfiguration uses it internally to manage the construction of our various components (JsonApiFormatter, ModelManager, JsonApiQueryableAttribute, etc.). At the moment the container I use for this purpose is not integrated with the HttpConfiguration's dependency resolver and will not interfere with controller instance DI. Still to do The JsonApiFormatter can be cleaned up to be internal and use a single constructor. If we want to inject our own services onto controller instances (such as IMetadataManager), then I believe we will need to take over setting the IDependencyResolver. If we do this, however, we will be forcing the user to use Autofac for resolving controller dependencies, which sounds pretty heavy-handed. At the very least we'd have to give them access to the ContainerBuilder for customization. ModelManager and IModelManager can be made internal. PascalizedControllerSelector can be made internal. Some links Example JsonApiConfiguration JsonApiConfiguration definition

Open Graph Description: This is the first part of a refactor that I hope will make our library even simpler to setup. Rationale There are starting to become a lot of moving parts that the user has to configure to get JSON...

X Description: This is the first part of a refactor that I hope will make our library even simpler to setup. Rationale There are starting to become a lot of moving parts that the user has to configure to get JSON...

Opengraph URL: https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:1e19365a-eb41-906a-630c-c0d72f399a7a
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idA68A:877A:3E65C4:530C51:6A52D0DF
html-safe-nonce2b11d1cfb93a9d83f4ed1a20bcfaff30405b492ae786f05988e14c0bfc07b3b9
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBNjhBOjg3N0E6M0U2NUM0OjUzMEM1MTo2QTUyRDBERiIsInZpc2l0b3JfaWQiOiI5MDM1ODk3Nzg5OTEwMDEyMTI3IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmacbb7ad7f733cf0f9fe9365e89d53b6ae7f16a64dc0f097b32cb2a94bf6af447a0
hovercard-subject-tagpull_request:29225905
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files
twitter:imagehttps://avatars.githubusercontent.com/u/828286?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/828286?s=400&v=4
og:image:altThis is the first part of a refactor that I hope will make our library even simpler to setup. Rationale There are starting to become a lot of moving parts that the user has to configure to get JSON...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Noneb9a586c06a05a7a86fc7e3f4dbd03e42f6869085879aa184aa6369456dbd50fb
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/JSONAPIdotNET/JSONAPI.NET git https://github.com/JSONAPIdotNET/JSONAPI.NET.git
octolytics-dimension-user_id16112275
octolytics-dimension-user_loginJSONAPIdotNET
octolytics-dimension-repository_id27474358
octolytics-dimension-repository_nwoJSONAPIdotNET/JSONAPI.NET
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id27474358
octolytics-dimension-repository_network_root_nwoJSONAPIdotNET/JSONAPI.NET
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release07a982c1d40157c619b364352b704c3ce66bb332
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2FJSONAPIdotNET%2FJSONAPI.NET%2Fpull%2F62%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2FJSONAPIdotNET%2FJSONAPI.NET%2Fpull%2F62%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=JSONAPIdotNET%2FJSONAPI.NET
Reloadhttps://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files
Reloadhttps://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files
Reloadhttps://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files
Please reload this pagehttps://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files
JSONAPIdotNET https://github.com/JSONAPIdotNET
JSONAPI.NEThttps://github.com/JSONAPIdotNET/JSONAPI.NET
Notifications https://github.com/login?return_to=%2FJSONAPIdotNET%2FJSONAPI.NET
Fork 23 https://github.com/login?return_to=%2FJSONAPIdotNET%2FJSONAPI.NET
Star 101 https://github.com/login?return_to=%2FJSONAPIdotNET%2FJSONAPI.NET
Code https://github.com/JSONAPIdotNET/JSONAPI.NET
Issues 28 https://github.com/JSONAPIdotNET/JSONAPI.NET/issues
Pull requests 5 https://github.com/JSONAPIdotNET/JSONAPI.NET/pulls
Actions https://github.com/JSONAPIdotNET/JSONAPI.NET/actions
Projects https://github.com/JSONAPIdotNET/JSONAPI.NET/projects
Wiki https://github.com/JSONAPIdotNET/JSONAPI.NET/wiki
Security and quality 0 https://github.com/JSONAPIdotNET/JSONAPI.NET/security
Insights https://github.com/JSONAPIdotNET/JSONAPI.NET/pulse
Code https://github.com/JSONAPIdotNET/JSONAPI.NET
Issues https://github.com/JSONAPIdotNET/JSONAPI.NET/issues
Pull requests https://github.com/JSONAPIdotNET/JSONAPI.NET/pulls
Actions https://github.com/JSONAPIdotNET/JSONAPI.NET/actions
Projects https://github.com/JSONAPIdotNET/JSONAPI.NET/projects
Wiki https://github.com/JSONAPIdotNET/JSONAPI.NET/wiki
Security and quality https://github.com/JSONAPIdotNET/JSONAPI.NET/security
Insights https://github.com/JSONAPIdotNET/JSONAPI.NET/pulse
Sign up for GitHub https://github.com/signup?return_to=%2FJSONAPIdotNET%2FJSONAPI.NET%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2FJSONAPIdotNET%2FJSONAPI.NET%2Fissues%2Fnew%2Fchoose
csanterohttps://github.com/csantero
JSONAPIdotNET:0-4-0https://github.com/JSONAPIdotNET/JSONAPI.NET/tree/0-4-0
csantero:api-refactorhttps://github.com/csantero/JSONAPI.NET/tree/api-refactor
Conversation 3 https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62
Commits 2 https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/commits
Checks 0 https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/checks
Files changed https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files
Please reload this pagehttps://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files
Streamline API surface https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#top
Show all changes 2 commits https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files
83a988f refactor to streamline API surface Mar 13, 2015 https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/commits/83a988f64728a65d7078ad0fc66d8b9c3601daf2
4594fa3 ensure that AsynchronousEnumerationTransformer is public Mar 13, 2015 https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/commits/4594fa3d7c51341e2ed857b063c19a7bc5a729d1
Clear filters https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files
Please reload this pagehttps://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files
Please reload this pagehttps://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files
Startup.cs https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-2490b425591898c47807a35c8a1d72a4670d1c18332b7dae77a9497576c16eaf
AcceptanceTestsBase.cs https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-8060c0c26473dce367f6a9ea1b99f49bfd725885456ed3719c16188c1e717f97
AsynchronousEnumerationTransformerTests.cs https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-7c223abdeeb5d164137dbe2310dff9f1a6820a1fdbbf2a53ffdbd67796b1d750
JSONAPI.EntityFramework.Tests.csproj https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-5265527d1d2de030795d6ef192b3fdcbd4cdbe010c8202d8b30013de0c84627e
AsynchronousEnumerationTransformer.cs https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-2d4444759caff05df9ad9f896ce96126d84d504dfd2a24d25c23aa12b8ef1fae
EnumerateQueryableAsyncAttribute.cs https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-543d52ebb9456820f2d84941f25670fb3b6002bfd2a4e1166f5484823a4d7e2a
JSONAPI.EntityFramework.csproj https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-f476b259d63a6bc9fadd7ab04895e9ebb8f93cd48362901c88163518f5448f77
JsonApiConfigurationExtensions.cs https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-176078cdb17329c04c62dae8604646248b8db1827ad2c66f2be13a9f5ba1c6e6
DefaultFilteringTransformerTests.cs https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-9fbfb83158671a6229f7bea3b5d0d179b8d32ea695e151978c65df414c0c50b0
DefaultSortingTransformerTests.cs https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-980286e82e30243c2ddd99b4bffbc523b27fbbdd8737be9ca78fcf654cf81307
EnableSortingAttributeTests.cs https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-db61571f2809647536a5906fc65a748c1347a9cc5179938d507f4c99010c1372
QueryableTransformerTestsBase.cs https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-6b2a92d91dcdcd8bdbf2574d4bf50038af27ca307f4fe7b25ebb5b667568da15
JSONAPI.Tests.csproj https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-31c7be3a28f798a1984ea0917f29ac7507c1383fd49a7223b9d61befc1ca766a
Startup.cs https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-f98404a2d648646954ad760e2fd7d5dd8b2b34891466f5ec94cbcb89f7413e39
DefaultFilteringTransformer.cs https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-b12da5f5d396085a292ce283af68642930c19c264fbe09f5bd1652611956f069
DefaultSortingTransformer.cs https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-f4f5cfe1d484e40396fe147b2d2e95b719d45a7a81a19c58b6988d21402a3b33
EnableSortingAttribute.cs https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-eaa39148b647bd3a9659727b4ce8db2cbd1dfd1a43c9cd603321bd2d749d8b05
IQueryableEnumerationTransformer.cs https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-9e075e39b6dce575d2e9d6b806cd5a7574f06a0551b45f63adf0c993ecb7c6b6
IQueryableFilteringTransformer.cs https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-59ebce47953b17706f544e33f8ab357b4cced0f2d2b016cb4bb29cde5e8f5593
IQueryableSortingTransformer.cs https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-d9363b471fbd5c78e2e84b0e1d88be0a92af6565e6aae0d0dce45070d9168a6f
JsonApiQueryableAttribute.cs https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-e03955241e0c1de17a175ad854851435a6b62aa8a1c51f3d3eb33f4d4493bed3
QueryableTransformException.cs https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-b74aba335b622ac48694ef1df711c57ce5992a5aaa4639e57dd64999a66cd72e
SynchronousEnumerationTransformer.cs https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-d4e4bc896a41a806a880217cf77a2c7e2de19c741a5acea9e8702f7185149f83
JsonApiConfiguration.cs https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-6bd6032d79595f10c60ea086e8d317b13f49336e331a62e8fcd30b5e7d1f465d
QueryableExtensions.cs https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-15094b19947b365f0c3a47ce1ca70c234f0ce5adf70f717e542470ec45d43a04
JSONAPI.csproj https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-244a53f21c498bc02f224a4064b7a0a88783ef6f5472ecd141d7d6f3299a18d7
AssemblyInfo.cs https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-610f1b2408519ae0c2052b1caf315a0814a3d54e142780bb8da2c240353a651c
JSONAPI.EntityFramework.Tests.TestWebApp/Startup.cshttps://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-2490b425591898c47807a35c8a1d72a4670d1c18332b7dae77a9497576c16eaf
View file https://github.com/csantero/JSONAPI.NET/blob/4594fa3d7c51341e2ed857b063c19a7bc5a729d1/JSONAPI.EntityFramework.Tests.TestWebApp/Startup.cs
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/{{ revealButtonHref }}
https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-2490b425591898c47807a35c8a1d72a4670d1c18332b7dae77a9497576c16eaf
https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-2490b425591898c47807a35c8a1d72a4670d1c18332b7dae77a9497576c16eaf
JSONAPI.EntityFramework.Tests/Acceptance/AcceptanceTestsBase.cshttps://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-8060c0c26473dce367f6a9ea1b99f49bfd725885456ed3719c16188c1e717f97
View file https://github.com/csantero/JSONAPI.NET/blob/4594fa3d7c51341e2ed857b063c19a7bc5a729d1/JSONAPI.EntityFramework.Tests/Acceptance/AcceptanceTestsBase.cs
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/{{ revealButtonHref }}
https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-8060c0c26473dce367f6a9ea1b99f49bfd725885456ed3719c16188c1e717f97
.../EnumerateQueryableAsyncAttributeTests.cs → ...synchronousEnumerationTransformerTests.cshttps://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-7c223abdeeb5d164137dbe2310dff9f1a6820a1fdbbf2a53ffdbd67796b1d750
View file https://github.com/csantero/JSONAPI.NET/blob/4594fa3d7c51341e2ed857b063c19a7bc5a729d1/JSONAPI.EntityFramework.Tests/ActionFilters/AsynchronousEnumerationTransformerTests.cs
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/{{ revealButtonHref }}
https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-7c223abdeeb5d164137dbe2310dff9f1a6820a1fdbbf2a53ffdbd67796b1d750
https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-7c223abdeeb5d164137dbe2310dff9f1a6820a1fdbbf2a53ffdbd67796b1d750
https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-7c223abdeeb5d164137dbe2310dff9f1a6820a1fdbbf2a53ffdbd67796b1d750
https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-7c223abdeeb5d164137dbe2310dff9f1a6820a1fdbbf2a53ffdbd67796b1d750
https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-7c223abdeeb5d164137dbe2310dff9f1a6820a1fdbbf2a53ffdbd67796b1d750
https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-7c223abdeeb5d164137dbe2310dff9f1a6820a1fdbbf2a53ffdbd67796b1d750
https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-7c223abdeeb5d164137dbe2310dff9f1a6820a1fdbbf2a53ffdbd67796b1d750
JSONAPI.EntityFramework.Tests/JSONAPI.EntityFramework.Tests.csprojhttps://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-5265527d1d2de030795d6ef192b3fdcbd4cdbe010c8202d8b30013de0c84627e
View file https://github.com/csantero/JSONAPI.NET/blob/4594fa3d7c51341e2ed857b063c19a7bc5a729d1/JSONAPI.EntityFramework.Tests/JSONAPI.EntityFramework.Tests.csproj
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/{{ revealButtonHref }}
https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-5265527d1d2de030795d6ef192b3fdcbd4cdbe010c8202d8b30013de0c84627e
https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-5265527d1d2de030795d6ef192b3fdcbd4cdbe010c8202d8b30013de0c84627e
JSONAPI.EntityFramework/ActionFilters/AsynchronousEnumerationTransformer.cshttps://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-2d4444759caff05df9ad9f896ce96126d84d504dfd2a24d25c23aa12b8ef1fae
View file https://github.com/csantero/JSONAPI.NET/blob/4594fa3d7c51341e2ed857b063c19a7bc5a729d1/JSONAPI.EntityFramework/ActionFilters/AsynchronousEnumerationTransformer.cs
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/{{ revealButtonHref }}
JSONAPI.EntityFramework/ActionFilters/EnumerateQueryableAsyncAttribute.cshttps://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-543d52ebb9456820f2d84941f25670fb3b6002bfd2a4e1166f5484823a4d7e2a
View file https://github.com/JSONAPIdotNET/JSONAPI.NET/blob/fc01f529c5896747824ea59ec260260417987738/JSONAPI.EntityFramework/ActionFilters/EnumerateQueryableAsyncAttribute.cs
Open in desktop https://desktop.github.com
Please reload this pagehttps://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files
JSONAPI.EntityFramework/JSONAPI.EntityFramework.csprojhttps://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-f476b259d63a6bc9fadd7ab04895e9ebb8f93cd48362901c88163518f5448f77
View file https://github.com/csantero/JSONAPI.NET/blob/4594fa3d7c51341e2ed857b063c19a7bc5a729d1/JSONAPI.EntityFramework/JSONAPI.EntityFramework.csproj
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/{{ revealButtonHref }}
https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-f476b259d63a6bc9fadd7ab04895e9ebb8f93cd48362901c88163518f5448f77
https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-f476b259d63a6bc9fadd7ab04895e9ebb8f93cd48362901c88163518f5448f77
JSONAPI.EntityFramework/JsonApiConfigurationExtensions.cshttps://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files#diff-176078cdb17329c04c62dae8604646248b8db1827ad2c66f2be13a9f5ba1c6e6
View file https://github.com/csantero/JSONAPI.NET/blob/4594fa3d7c51341e2ed857b063c19a7bc5a729d1/JSONAPI.EntityFramework/JsonApiConfigurationExtensions.cs
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/{{ revealButtonHref }}
Please reload this pagehttps://github.com/JSONAPIdotNET/JSONAPI.NET/pull/62/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.