Как вернуть результат функции в GraphQL - PullRequest
0 голосов
/ 24 июня 2019

Я использую 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

Есть идеи?

...