web-dev-qa-db-ja.com

POST axiosのreact-nativeのメソッドでAPIデータを取得する

Axiosを使用して、react-nativeアプリでデータを取得する必要があります。以下のように簡単なGETメソッドでデータを取得できます。

class AlbumList extends Component {

  state = { albums: [] };

componentWillMount() {
  //axios.get('https://rallycoding.herokuapp.com/api/music_albums') .then(response => console.log(response));
  axios.get('http://rallycoding.herokuapp.com/api/music_albums')

  .then(response => this.setState({ albums: response.data }));
        }
        renderAlbums() {
          return this.state.albums.map(album =>
          <AlbumDetail key={album.title} album={album} />);
         // return this.state.albums.map(album => <Text>{album.title}</Text>);
        }

render() {
    console.log(this.state);

return (
   <View>
        {this.renderAlbums()}
    </View>    
);
}
}

POSTメソッドを使用してAPIからデータを取得するにはどうすればよいですか。また、ヘッダーとapi-username、api-password、apitokenを渡す必要がありますか?

https://stackoverflow.com/a/41358543/9490 のようなものが必要ですが、[〜#〜] axios [〜#〜]

編集:

[〜#〜] linnwork [〜#〜] APIからデータを取得する必要があります。誰かがこれを行った場合、ガイドしてください。彼らはまず authorize する必要があり、それからそこからデータを取得できます。そのため、認証してから次のステップに進みます。

6
Jai

axios postメソッドは3つの引数、つまりurl、data&configを取ります。

次のようにaxios投稿リクエストを構成できます。

axios.post(
    'http://rallycoding.herokuapp.com/api/music_albums', 
    {
       'param1': 'value1',
       'param2': 'value2',
       //other data key value pairs
    },
    {
       headers: {
           'api-token': 'xyz',
            //other header fields
       }
    }
);

あなたの場合、https://api.linnworks.net/api/Inventory/GetCategoriesにアクセスする必要があります。これは docs に従ってtokenヘッダーの認証APIからAuthorizationを必要とします。したがって、axiosを介したGETリクエストは次のようになります。

axios.get("https://api.linnworks.net/api/Inventory/GetCategories", { 
    headers: {
      'Authorization': 'token-from-auth-api'
    }
}).then((response) => {
    console.log(response.data);
})
8