?
avatar asika32764
asika32764
30 Mar 2017

A new idea when I'm writing #14952 , it is a proposal to try creating a Joomla.Http object to make our frontend programming more modern.

I dont't think it is necessary for Joomla CMS now since our controller didn't handle PUT and DELETE methods, but I still note a new idea here to consider maybe some developers may need this to call 3rd party APIs.

Interface

Use sendRequest() as main entry, it is similar to HttpPlug's HttpClient interface

Joomla.Http.sendRequest('GET', url, data, headers, options);

// Or use object options

Joomla.Http.sendRequest(requestOptions);

Should return a Promise object.

Joomla.Http.sendRequest(...).then(res => console.log(res.body));

For IE8, we can simply include a promise-polyfill.js or adapt jQuery.Deferred to Promise A/+ like this

Simple shortcuts

Joomla.Http.get(url, headers, options).then();
Joomla.Http.post(url, data, headers, options).then();
Joomla.Http.put(url, data, headers, options).then();
Joomla.Http.delete(url, data, headers, options).then();
Joomla.Http.head(url, data, headers, options).then();

Support auto inject the CSRF token:

Joomla.Http.defaultOptions.headers.post['X-CSRF-Token'] = token;

Extra Functions

These are not required but also list here.

Maybe support X-HTTP-Method-Override or _method=PUT query:

Joomla.Http.sendRequest({ emulateHTTP: true });

Or application/x-www-form-urlencoded

Joomla.Http.sendRequest({ emulateJSON: true });

By default, Joomla.Http should send all request as application/x-www-form-urlencoded because it is similar to jQuery.ajax() and we don't need to change the backend code.

Updated 2017-09-17

Another suggestion is that we can consider simply wrap axios or just include it in as js vendor since it is popular in frontend developers.

avatar asika32764 asika32764 - open - 30 Mar 2017
avatar joomla-cms-bot joomla-cms-bot - change - 30 Mar 2017
Labels Added: ?
avatar joomla-cms-bot joomla-cms-bot - labeled - 30 Mar 2017
avatar asika32764 asika32764 - edited - 30 Mar 2017
avatar asika32764 asika32764 - change - 30 Mar 2017
The description was changed
avatar asika32764 asika32764 - edited - 30 Mar 2017
avatar asika32764 asika32764 - change - 30 Mar 2017
The description was changed
avatar asika32764 asika32764 - edited - 30 Mar 2017
avatar joomla-cms-bot joomla-cms-bot - change - 30 Mar 2017
The description was changed
avatar joomla-cms-bot joomla-cms-bot - edited - 30 Mar 2017
avatar franz-wohlkoenig franz-wohlkoenig - change - 30 Mar 2017
Status New Discussion
avatar joomla-cms-bot joomla-cms-bot - change - 30 Mar 2017
The description was changed
avatar joomla-cms-bot joomla-cms-bot - edited - 30 Mar 2017
avatar franz-wohlkoenig franz-wohlkoenig - change - 30 Mar 2017
Category Front End
avatar franz-wohlkoenig franz-wohlkoenig - change - 26 Aug 2017
Status Discussion New
avatar franz-wohlkoenig
franz-wohlkoenig - comment - 2 Sep 2017

Opinion of @production Department?


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/14994.

avatar franz-wohlkoenig franz-wohlkoenig - change - 2 Sep 2017
Status New Information Required
avatar franz-wohlkoenig
franz-wohlkoenig - comment - 17 Sep 2017

@mbabker any Statement?


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/14994.

avatar asika32764 asika32764 - change - 17 Sep 2017
The description was changed
avatar asika32764 asika32764 - edited - 17 Sep 2017
avatar asika32764 asika32764 - change - 17 Sep 2017
The description was changed
avatar asika32764 asika32764 - edited - 17 Sep 2017
avatar asika32764 asika32764 - change - 17 Sep 2017
The description was changed
avatar asika32764 asika32764 - edited - 17 Sep 2017
avatar franz-wohlkoenig
franz-wohlkoenig - comment - 22 Oct 2017

@mbabker can Maintainer make a Decision on this?


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/14994.

avatar franz-wohlkoenig franz-wohlkoenig - change - 26 Nov 2017
Status Information Required Needs Review
avatar franz-wohlkoenig
franz-wohlkoenig - comment - 26 Nov 2017

Status is set on "Needs Review".

avatar brianteeman brianteeman - change - 24 Jul 2018
Status Needs Review Closed
Closed_Date 0000-00-00 00:00:00 2018-07-24 15:30:04
Closed_By brianteeman
avatar brianteeman brianteeman - close - 24 Jul 2018

Add a Comment

Login with GitHub to post a comment