{"action":"created","issue":{"url":"https://api.github.com/repos/katharsis-project/katharsis-framework/issues/4","repository_url":"https://api.github.com/repos/katharsis-project/katharsis-framework","labels_url":"https://api.github.com/repos/katharsis-project/katharsis-framework/issues/4/labels{/name}","comments_url":"https://api.github.com/repos/katharsis-project/katharsis-framework/issues/4/comments","events_url":"https://api.github.com/repos/katharsis-project/katharsis-framework/issues/4/events","html_url":"https://github.com/katharsis-project/katharsis-framework/issues/4","id":168308426,"number":4,"title":"Getting Katharsis to adhere to the Json api specification for query parameters","user":{"login":"masterspambot","id":581121,"avatar_url":"https://avatars.githubusercontent.com/u/581121?v=3","gravatar_id":"","url":"https://api.github.com/users/masterspambot","html_url":"https://github.com/masterspambot","followers_url":"https://api.github.com/users/masterspambot/followers","following_url":"https://api.github.com/users/masterspambot/following{/other_user}","gists_url":"https://api.github.com/users/masterspambot/gists{/gist_id}","starred_url":"https://api.github.com/users/masterspambot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/masterspambot/subscriptions","organizations_url":"https://api.github.com/users/masterspambot/orgs","repos_url":"https://api.github.com/users/masterspambot/repos","events_url":"https://api.github.com/users/masterspambot/events{/privacy}","received_events_url":"https://api.github.com/users/masterspambot/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/katharsis-project/katharsis-framework/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/katharsis-project/katharsis-framework/labels/katharsis-core","name":"katharsis-core","color":"d4c5f9"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/katharsis-project/katharsis-framework/milestones/1","html_url":"https://github.com/katharsis-project/katharsis-framework/milestones/katharsis-3","labels_url":"https://api.github.com/repos/katharsis-project/katharsis-framework/milestones/1/labels","id":1925217,"number":1,"title":"katharsis-3","description":null,"creator":{"login":"ieugen","id":1050920,"avatar_url":"https://avatars.githubusercontent.com/u/1050920?v=3","gravatar_id":"","url":"https://api.github.com/users/ieugen","html_url":"https://github.com/ieugen","followers_url":"https://api.github.com/users/ieugen/followers","following_url":"https://api.github.com/users/ieugen/following{/other_user}","gists_url":"https://api.github.com/users/ieugen/gists{/gist_id}","starred_url":"https://api.github.com/users/ieugen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ieugen/subscriptions","organizations_url":"https://api.github.com/users/ieugen/orgs","repos_url":"https://api.github.com/users/ieugen/repos","events_url":"https://api.github.com/users/ieugen/events{/privacy}","received_events_url":"https://api.github.com/users/ieugen/received_events","type":"User","site_admin":false},"open_issues":5,"closed_issues":2,"state":"open","created_at":"2016-08-05T11:06:50Z","updated_at":"2016-08-18T13:10:22Z","due_on":null,"closed_at":null},"comments":12,"created_at":"2016-07-29T11:51:04Z","updated_at":"2016-08-30T07:08:21Z","closed_at":null,"body":"_From @dustinstanley on July 27, 2016 2:52_\n\nHi,\r\n\r\nI am working on getting katharsis to adhere more strictly to the official specification, especially with regards to the parsing of query parameters.  I have reviewed Enhancement #209 which appeared as though it would allow extension of the framework to enable custom parsing of the query parameters, but this appears to be only a partial solution.\r\n\r\nI am able to create my own QueryParamsParser and QueryParamsBuilder, but unfortunately KatharsisInvoker depends on the use of the QueryParams object which is not extensible in the same way, and QueryParams contains additional logic for parsing query parameters that I cannot override easily.  For example, the setSorting method in QueryParams assumes that the sorting parameter is of the form \"sort[resource name][field name]\", presumably to allow sorting of different types of resources.  However, this diverges from the spec as the examples show that the resource name is not to be specified as a query parameter. http://jsonapi.org/format/#fetching-sorting\r\n\r\nSimilarly, there is a problem with inclusion of related resources as the spec does not appear to support including the top level resource name as a query parameter, as it is instead assumed by the path in the URL.  However, if the resource name is not present as a query parameter, this causes an issue with IncludedRelationshipExtractor as it appears to need the resource name as a query parameter and it is unable to identify the parent resource for which to load the relationships.  I could not find a way to grab this from the URL and feed it into the extractor given the current design.\r\n\r\nThe katharsis parameters approach does appear to be more flexible than the spec which is good but we are concerned about clients using libraries that may strictly adhere to the spec, which could cause issues when calling katharsis services.\r\n\r\nPerhaps this is something I am just missing here, but is it possible to make katharsis adhere to the json api specification taking the changes for #209 into account?  \r\n\r\n\r\n\n\n_Copied from original issue: katharsis-project/katharsis-core#373_"},"comment":{"url":"https://api.github.com/repos/katharsis-project/katharsis-framework/issues/comments/243352089","html_url":"https://github.com/katharsis-project/katharsis-framework/issues/4#issuecomment-243352089","issue_url":"https://api.github.com/repos/katharsis-project/katharsis-framework/issues/4","id":243352089,"user":{"login":"dustinstanley","id":3203889,"avatar_url":"https://avatars.githubusercontent.com/u/3203889?v=3","gravatar_id":"","url":"https://api.github.com/users/dustinstanley","html_url":"https://github.com/dustinstanley","followers_url":"https://api.github.com/users/dustinstanley/followers","following_url":"https://api.github.com/users/dustinstanley/following{/other_user}","gists_url":"https://api.github.com/users/dustinstanley/gists{/gist_id}","starred_url":"https://api.github.com/users/dustinstanley/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dustinstanley/subscriptions","organizations_url":"https://api.github.com/users/dustinstanley/orgs","repos_url":"https://api.github.com/users/dustinstanley/repos","events_url":"https://api.github.com/users/dustinstanley/events{/privacy}","received_events_url":"https://api.github.com/users/dustinstanley/received_events","type":"User","site_admin":false},"created_at":"2016-08-30T07:08:21Z","updated_at":"2016-08-30T07:08:21Z","body":"I've made a commit regarding the simplification of the QueryParamsParser / adding of a QueryParamsParserContext.  If you get a chance, take a quick look and see if we're on the same page: https://github.com/dustinstanley/katharsis-framework/commit/2b850527be8f2f279c5a5eeb7637e36a0af6fcbf\r\n\r\nRegarding your changes, is the intention to eventually replace QueryParams with QuerySpec?  It seems like that would be ideal, then we wouldn't need to implement a BaseResourceRepository (I agree, the name seems off, but I can't think of a better one off the top of my head).  Ideally we could change the ResourceRepository interface to only use QuerySpec, but that seems like a huge change.\r\n\r\nQuerySpec really does seem like a \"QueryParamsv2.0\", and it looks like there is some precedent in the library for adding a \"V2\" suffix to some class names (e.g. \"KatharsisFilterV2\") but doing that for something as visible as ResourceRepository seems...wrong :)\r\n"}}
{"actor":{"display_login":"dustinstanley"}}