ebess
6. November 2020 um 18:42
1
Hallo Leute,
ich versuche über eine Adminkomponente für v6.3.3.1 ein Request zu machen, aber anscheinend hat sch die Api verändert. Vielleicht kann mir einer helfen, wie ich das Problem am besten löse.
{
template,
inject: [
'pluginService',
],
methods: {
foo() {
const headers = this.pluginService.getBasicHeaders();
return this.pluginService.httpClient.post('/foo/bar', {headers}).then((response) => {
const res = Shopware.Classes.ApiService.handleResponse(response);
// do stuff
});
},
},
}
Kriege dann diese Fehlermeldung:
{„errors“:[{„status“:„400“,„code“:„FRAMEWORK__WRITE_MALFORMED_INPUT“,„title“:„Bad Request“,„detail“:„Expected data to be array.“,„meta“:{„parameters“: }}]}
Hoffe ihr könnt mir weiterhelfen! Danke sehr!
Die post methode benötigt 3 Parameter
Headers ist im falschen Format, es muss { headers: headers } sein…
oder bau dir einen eigenen service
import ApiService from 'src/core/service/api.service';
class FoundationApiService extends ApiService {
constructor(httpClient, loginService, apiEndpoint = '') {
super(httpClient, loginService, apiEndpoint);
}
get(path) {
const apiRoute = this.getApiBasePath() + path;
return this.httpClient.get(
apiRoute,
{
headers: this.getBasicHeaders()
}
).then((response) => {
return ApiService.handleResponse(response);
});
}
post(path, data) {
const apiRoute = this.getApiBasePath() + path;
return this.httpClient.post(
apiRoute,
data,
{
headers: this.getBasicHeaders()
}
).then((response) => {
return ApiService.handleResponse(response);
});
}
}
export default FoundationApiService;
lav
7. November 2020 um 06:52
3
Hello If you using Get method then call api like
careerdelete function name
careerdelete: function (item) {
const headers = this.pluginService.getBasicHeaders();
return this.pluginService.httpClient
.get(’/shipcloud/deletelabel/’, {headers})
.then((response) => {
location.reload(true);
}).catch(error => {
});
},
If you using POST method then
Data you can pass using const
const data = {
orderID: this.order.orderNumber,
emailID:this.order.orderCustomer.email,
}
return this.pluginService.httpClient
.post(’/swag/returnlabel’,data,{headers})
.then((response) => {
if (response.data.type == ‚error‘)
{
this.createNotificationError({
title: response.data.type,
message: response.data.message
});
return;
}
this.createNotificationError({
title: response.data.type,
message: response.data.message
});
}).catch(error => {
});