Я использую React, Apollo и GraphQL на внешнем интерфейсе, а Django, Python и Graphene на внутреннем.
Я хочу реализовать search_bar, и когда пользователь нажимает кнопку поиска, я хочу выполнить запрос GraphQL с пользовательским вводом.
В бэкэнде я хочу захватить эту строку и передать ее функции, а затем вернуть результат из функции, которую хочу передать обратно во внешний интерфейс.
У меня есть следующий код:
FRONTEND
export const GET_RESULTS = gql`
query SearchVinResults($vin: String!){
searchVinResults(vin: $vin) {
id
label
url
}
}`;
class VinSearch extends Component {
onVinSearch(e) {
e.preventDefault();
const {value, client: {query}} = this.props;
query({query: GET_RESULTS, variables: { vin: value }});
}
render() {
const {value, clearSearch, onChange} = this.props;
return (
<SearchField
onChange={e => onChange(e)}
clearSearch={() => clearSearch()}
value={value}
clearIcon="fal fa-times"
placeholder="Search VIN"
withButton={true}
buttonStyles={{borderLeftWidth: 0}}
onClick={e => this.onVinSearch(e)}
/>
);
}
}
export default withApollo(VinSearch);
Backend
Класс Query (объект):
search_vin_results = ???? # Что мне нужно сделать здесь
def resolve_search_vin_results(self, info, **kwargs):
# Here I want to do something like
vin = info['vin']
results = get_vins(vin)
return results
Есть идеи?