#javascript
#javascript
Вопрос:
Проблема в том, что я сопоставил объекты: один многим (пример «категория» и «продукт») и управление внешним ключом во внешнем интерфейсном приложении с помощью React.
Серверная часть содержит данные Spring Boot Rest.
Столбцы похожи:
class ListProd extends Component {
constructor(props) {
super(props);
this.state = { prod: []};
}
componentDidMount() {
this.fetchProds();
}
fetchEtuds = () => {
fetch ('http://localhost:8080/' 'products')
.then((response) => response.json())
.then((responseData) => {
this.setState({
prod: responseData._embedded.products,
});
})
.catch(err => console.error(err));
}
const columns = [{
Header: 'Id',
accessor: 'id',
Cell: this.renderEditable
}, {
Header: 'Code Product',
accessor: 'codep',
}, {
Header: 'Label',
accessor: 'label',
}, {
Header: 'Price',
accessor: 'price',
}, {
id : 'category_id',
Header: 'Category',
accessor: '_links.category.href', // **my problem is here**
...
return (
<div className="App">
<ReactTable data={this.state.prod} columns={columns} filterable={true} pageSize={10}/>
</div>
);
}
}
export default ListProd;
код json выглядит следующим образом
{
"_embedded" : {
"products" : [ {
"id" : 1,
"label" : "l1",
"price" : 100,
"_links" : {
"self" : {
"href" : "http://localhost:8080/products/1"
},
"product" : {
"href" : "http://localhost:8080/products/1",
"templated" : true
},
"Category" : {
"href" : "http://localhost:8080/products/1/category"
}
}
}, {
"id" : 2,
Итак, проблема в том, что я получаю не значение внешнего ключа, а вместо этого URL каждой строки, вот так:
http://localhost:8080/products/1/category
для идентификатора продукта = 1 witch возвращает формат json :
{
"id" : 1,
"nameCat" : "C1",
"_links" : {
"self" : {
"href" : "http://localhost:8080/categories/1"
},
"category" : {
"href" : "http://localhost:8080/categories/1"
},
"products" : {
"href" : "http://localhost:8080/categories/1/products",
"templated" : true
}
}
}
Как я могу получить значение каждой категории в списке product listProd?
Комментарии:
1. Похоже, это вопрос к серверной части. Я предполагаю, что этот вопрос должен быть помечен как Spring Boot Data? Не хотите ли вы сказать, что вы делаете запрос API к некоторой конечной точке при загрузке Spring и это ответ? Вы хотели бы, чтобы ответ отличался от отображения «href» для категорий / 1 вы могли бы сделать другой запрос API для каждого из этих идентификаторов продукта или категорий. Или вы можете изменить способ работы API.
2. Хорошо, для этого примера могу ли я отобразить в поле формы значение категории (здесь 1)