{"action":"created","issue":{"url":"https://api.github.com/repos/joomla/joomla-cms/issues/23424","repository_url":"https://api.github.com/repos/joomla/joomla-cms","labels_url":"https://api.github.com/repos/joomla/joomla-cms/issues/23424/labels{/name}","comments_url":"https://api.github.com/repos/joomla/joomla-cms/issues/23424/comments","events_url":"https://api.github.com/repos/joomla/joomla-cms/issues/23424/events","html_url":"https://github.com/joomla/joomla-cms/pull/23424","id":395111495,"node_id":"MDExOlB1bGxSZXF1ZXN0MjQxNjUwNTYy","number":23424,"title":"[4.0] Webservices","user":{"login":"wilsonge","id":1986000,"node_id":"MDQ6VXNlcjE5ODYwMDA=","avatar_url":"https://avatars2.githubusercontent.com/u/1986000?v=4","gravatar_id":"","url":"https://api.github.com/users/wilsonge","html_url":"https://github.com/wilsonge","followers_url":"https://api.github.com/users/wilsonge/followers","following_url":"https://api.github.com/users/wilsonge/following{/other_user}","gists_url":"https://api.github.com/users/wilsonge/gists{/gist_id}","starred_url":"https://api.github.com/users/wilsonge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wilsonge/subscriptions","organizations_url":"https://api.github.com/users/wilsonge/orgs","repos_url":"https://api.github.com/users/wilsonge/repos","events_url":"https://api.github.com/users/wilsonge/events{/privacy}","received_events_url":"https://api.github.com/users/wilsonge/received_events","type":"User","site_admin":false},"labels":[{"id":307745144,"node_id":"MDU6TGFiZWwzMDc3NDUxNDQ=","url":"https://api.github.com/repos/joomla/joomla-cms/labels/Composer%20Dependency%20Changed","name":"Composer Dependency Changed","color":"207de5","default":false},{"id":198658453,"node_id":"MDU6TGFiZWwxOTg2NTg0NTM=","url":"https://api.github.com/repos/joomla/joomla-cms/labels/Language%20Change","name":"Language Change","color":"eb6420","default":false},{"id":444033883,"node_id":"MDU6TGFiZWw0NDQwMzM4ODM=","url":"https://api.github.com/repos/joomla/joomla-cms/labels/PR-4.0-dev","name":"PR-4.0-dev","color":"ededed","default":false},{"id":38040572,"node_id":"MDU6TGFiZWwzODA0MDU3Mg==","url":"https://api.github.com/repos/joomla/joomla-cms/labels/Unit/System%20Tests","name":"Unit/System Tests","color":"5319e7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2019-01-01T20:57:32Z","updated_at":"2019-01-01T21:35:51Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/joomla/joomla-cms/pulls/23424","html_url":"https://github.com/joomla/joomla-cms/pull/23424","diff_url":"https://github.com/joomla/joomla-cms/pull/23424.diff","patch_url":"https://github.com/joomla/joomla-cms/pull/23424.patch"},"body":"This is a base for a webservices implementation for Joomla 4\r\n\r\n## What this has got in\r\n### Core\r\n- Content Negotiation (core provides a basic api integration using the https://github.com/tobscure/json-api library)\r\n- Plugin based routes to allow custom endpoints to be added\r\n- Authentication on endpoints using users basic auth (through plugins to allow future oAuth integrations)\r\n- Exceptions added to allow quality error handling\r\n\r\n### Integrations/Testing\r\n- Sample com_content integration\r\n- Basic system tests\r\n\r\n## What does this not have in\r\n- oAuth authentication\r\n- Ability to turn off webservices (this will probably need to happen before this ships in J4)\r\n- Some sort of fundamental change to our error handling (the way we set up errors in JTable and JModel mean we'll likely never be able to have nice error handling with the current model system. In many places we're likely going to need to add 500's just because we won't be able to detect the right exceptions. In the future we should consider a new mvc layer based on the new entity layer https://github.com/joomla-framework/entities but this will take longer and be much harder to implement. The fundamental base application would not be expected to change but extension MVC's will have to to have a nice working integration.\r\n\r\n## Thanks\r\n- @mbabker for large amounts of consulting and framework contributions especially around the router\r\n- @muhakh and @cokencorn for their work on their GSOC project which formed a large amount of the base application \r\n- @isacandrei for work bug testing and working on various next gen parts\r\n\r\n## Before moaning about a lack of feature X\r\nPlease read the specification https://joomla-projects.github.io/gsoc18_webservices/ - this has long been agreed on and is my no means perfect. Think about if it's absolutely essential for a day 1 integration or not. What we have in this PR is already significantly more than wordpress has and is probably equal to what's available in the other top level CMS'"},"comment":{"url":"https://api.github.com/repos/joomla/joomla-cms/issues/comments/450758730","html_url":"https://github.com/joomla/joomla-cms/pull/23424#issuecomment-450758730","issue_url":"https://api.github.com/repos/joomla/joomla-cms/issues/23424","id":450758730,"node_id":"MDEyOklzc3VlQ29tbWVudDQ1MDc1ODczMA==","user":{"login":"brianteeman","id":1296369,"node_id":"MDQ6VXNlcjEyOTYzNjk=","avatar_url":"https://avatars3.githubusercontent.com/u/1296369?v=4","gravatar_id":"","url":"https://api.github.com/users/brianteeman","html_url":"https://github.com/brianteeman","followers_url":"https://api.github.com/users/brianteeman/followers","following_url":"https://api.github.com/users/brianteeman/following{/other_user}","gists_url":"https://api.github.com/users/brianteeman/gists{/gist_id}","starred_url":"https://api.github.com/users/brianteeman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brianteeman/subscriptions","organizations_url":"https://api.github.com/users/brianteeman/orgs","repos_url":"https://api.github.com/users/brianteeman/repos","events_url":"https://api.github.com/users/brianteeman/events{/privacy}","received_events_url":"https://api.github.com/users/brianteeman/received_events","type":"User","site_admin":false},"created_at":"2019-01-01T21:35:50Z","updated_at":"2019-01-01T21:35:50Z","author_association":"CONTRIBUTOR","body":"Sorry to be pedantic but the correct term according to the [w3c](https://www.w3.org/2002/ws/) it is \"Web Services\" not \"webservices\"\r\n\r\nAs this is new to Joomla its best to get it right from the beginning"}}
{"actor":{"display_login":"brianteeman"}}