[removed] Fetch DELETE and PUT requests

前端 未结 7 2029
一个人的身影
一个人的身影 2020-12-01 04:26

I have gotten outside of GET and POST methods with Fetch. But I couldn\'t find any good DELETE and PUT example.

So, I ask you for it. Could you give a good example

相关标签:
7条回答
  • 2020-12-01 04:43

    Here are examples for Delete and Put for React & redux & ReduxThunk with Firebase:

    Update (PUT):

    export const updateProduct = (id, title, description, imageUrl) => {
        await fetch(`https://FirebaseProjectName.firebaseio.com/products/${id}.json`, {
      method: "PATCH",
      header: {
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        title,
        description,
        imageUrl,
      }),
    });
    
    dispatch({
      type: "UPDATE_PRODUCT",
      pid: id,
      productData: {
        title,
        description,
        imageUrl,
      },
    });
    };
    };
    

    Delete:

    export const deleteProduct = (ProductId) => {
      return async (dispatch) => {
    await fetch(
      `https://FirebaseProjectName.firebaseio.com/products/${ProductId}.json`,
      {
        method: "DELETE",
      }
    );
    dispatch({
      type: "DELETE_PRODUCT",
      pid: ProductId,
    });
      };
    };
    
    0 讨论(0)
  • 2020-12-01 04:47

    Some examples:

    async function loadItems() { try { let response = await fetch(https://url/${AppID}); let result = await response.json(); return result; } catch (err) { } }

    async function addItem(item) {
        try {
            let response = await fetch("https://url", {
                method: "POST",
                body: JSON.stringify({
                    AppId: appId,
                    Key: item,
                    Value: item,
                    someBoolean: false,
                }),
                headers: {
                    "Content-Type": "application/json",
                },
            });
            let result = await response.json();
            return result;
        } catch (err) {
        }
    }
    
    async function removeItem(id) {
        try {
            let response = await fetch(`https://url/${id}`, {
                method: "DELETE",
            });
        } catch (err) {
        }
    }
    
    async function updateItem(item) {
        try {
            let response = await fetch(`https://url/${item.id}`, {
                method: "PUT",
                body: JSON.stringify(todo),
                headers: {
                    "Content-Type": "application/json",
                },
            });
        } catch (err) {
        }
    }
    
    0 讨论(0)
  • 2020-12-01 04:50

    Ok, here is a fetch DELETE example too:

    fetch('https://example.com/delete-item/' + id, {
      method: 'DELETE',
    })
    .then(res => res.text()) // or res.json()
    .then(res => console.log(res))
    
    0 讨论(0)
  • 2020-12-01 04:50

    For put method we have:

    const putMethod = {
     method: 'PUT', // Method itself
     headers: {
      'Content-type': 'application/json; charset=UTF-8' // Indicates the content 
     },
     body: JSON.stringify(someData) // We send data in JSON format
    }
    
    // make the HTTP put request using fetch api
    fetch(url, putMethod)
    .then(response => response.json())
    .then(data => console.log(data)) // Manipulate the data retrieved back, if we want to do something with it
    .catch(err => console.log(err)) // Do something with the error
    

    Example for someData, we can have some input fields or whatever you need:

    const someData = {
     title: document.querySelector(TitleInput).value,
     body: document.querySelector(BodyInput).value
    }
    

    And in our data base will have this in json format:

    {
     "posts": [
       "id": 1,
       "title": "Some Title", // what we typed in the title input field
       "body": "Some Body", // what we typed in the body input field
     ]
    }
    

    For delete method we have:

    const deleteMethod = {
     method: 'DELETE', // Method itself
     headers: {
      'Content-type': 'application/json; charset=UTF-8' // Indicates the content 
     },
     // No need to have body, because we don't send nothing to the server.
    }
    // Make the HTTP Delete call using fetch api
    fetch(url, deleteMethod) 
    .then(response => response.json())
    .then(data => console.log(data)) // Manipulate the data retrieved back, if we want to do something with it
    .catch(err => console.log(err)) // Do something with the error
    

    In the url we need to type the id of the of deletion: https://www.someapi/id

    0 讨论(0)
  • 2020-12-01 04:59

    Here is a fetch POST example. You can do the same for DELETE.

    function createNewProfile(profile) {
        const formData = new FormData();
        formData.append('first_name', profile.firstName);
        formData.append('last_name', profile.lastName);
        formData.append('email', profile.email);
    
        return fetch('http://example.com/api/v1/registration', {
            method: 'POST',
            body: formData
        }).then(response => response.json())
    }
    
    createNewProfile(profile)
       .then((json) => {
           // handle success
        })
       .catch(error => error);
    
    0 讨论(0)
  • 2020-12-01 05:00

    Here is good example of the CRUD operation using fetch API:

    “A practical ES6 guide on how to perform HTTP requests using the Fetch API” by Dler Ari https://link.medium.com/4ZvwCordCW

    Here is the sample code I tried for PATCH or PUT

    function update(id, data){
      fetch(apiUrl + "/" + id, {
        method: 'PATCH',
        body: JSON.stringify({
         data
        })
      }).then((response) => {
        response.json().then((response) => {
          console.log(response);
        })
      }).catch(err => {
        console.error(err)
      })
    

    For DELETE:

    function remove(id){
      fetch(apiUrl + "/" + id, {
        method: 'DELETE'
      }).then(() => {
         console.log('removed');
      }).catch(err => {
        console.error(err)
      });
    

    For more info visit Using Fetch - Web APIs | MDN https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch > Fetch_API.

    0 讨论(0)
提交回复
热议问题