HibbidyHooplah
HibbidyHooplah

Reputation: 327

Accessing 3rd party API from wix

I am trying to communicate with a 3rd party API. I wrote the API in python. I want to update the name column in the database from the Wix web page using a user form and text box. The database updates and all of the endpoints are responsive using postman to test. I think the problem resides in my JavaScript on the Wix end.

I modeled the JavaScript from the Wix example at: https://support.wix.com/en/article/calling-server-side-code-from-the-front-end-with-web-modules

I have a back end module called placeOrder stored in orderplaced.jsw that should post the variable 'name' to the api.

import { fetch } from 'wix-fetch';
// wix-fetch is the API we provide to make https calls in the backend

export function placeOrder(name) {
 return fetch("https://reliableeparts.pythonanywhere.com/user", {
        method: 'post',
        name: JSON.stringify({ name })

    }).then(function (response) {
 if (response.status >= 200 && response.status < 300){
            console.log(JSON.stringify({ name }))
 return response.text();}

    console.log(Error(response.statusText))



 return Error(response.statusText);}

    );
}

The front end module waits for a button click and stores the text box in the name variable.

{
import {placeOrder} from 'backend/orderplaced.jsw';

export function button1_click(event, $w) {
     placeOrder(
         $w("#input1").value)

         .then(function() {
            console.log("Form submitted to backend.");
        }
     );
}
}

Output: output2 The code appears to be reaching the back end. I believe the problem is in my placeOrder function as I am not very familiar with JavaScript.

Upvotes: 2

Views: 1265

Answers (1)

Ziv Levy
Ziv Levy

Reputation: 2044

Your code seems legit. The problem is with the server. When I tried to send a POST request to that address I got a 500 Internal Server Error.

You may check this curl and test the service yourself:

curl -i -X POST -H "Content-Type:application/json" https://reliableeparts.pythonanywhere.com/user -d '{"name":"test123"}'

You are probably missing the correct object structure the server is expecting or missing proper headers to POST the server (or both...)

Make sure you're following the API this server allows

Upvotes: 1

Related Questions