Shop basic backend ===== ``` type Query { login(login: String!, password: String!): String categories: [Category] category(_id: ID!): Category goods: [Good] good(_id: ID!): Good myOrders: [Order] orders: [Order] } type Mutation { createUser(login: String!, password: String!): User changePassword(password: String!): User setCategory(cat: CategoryInput!):Category setGood(good: GoodInput!):Good setOrder(order: OrderInput):Order setOrderGood(orderGood: OrderGoodInput):OrderGood } type User { _id: String login: String nick : String orders: [Order] } type Category { _id: ID, name: String!, goods: [Good] } type Good { _id: ID, name: String!, description: String price: Float orderGoods: [OrderGood] categories: [Category] } type OrderGood { _id: ID, price: Float, count: Float, good: Good, order: Order } type Order { _id: ID orderGoods: [OrderGood] } input UserInput { _id: String login: String nick : String } input CategoryInput { _id: ID, name: String!, goods: [ID] } input GoodInput { _id: ID, name: String!, description: String price: Float categories: [ID] } input OrderGoodInput { _id: ID, count: Int!, good: ID!, order: ID! } input OrderInput { _id: ID orderGoods: [ID] } ``` примеры запросов: ``` mutation createUser($login:String!, $password:String!){ createUser(login:$login, password:$password){ _id, login } } query login($login:String!, $password:String!){ login(login:$login, password:$password) } mutation pwd($password:String!){ changePassword(password: $password){ _id, login } } mutation cc($cat:CategoryInput!){ setCategory(cat:$cat){ _id, name } } query cats{ categories{ _id, name, goods{ name, description } } } query cat($_id:ID!){ category(_id:$_id){ _id, name } } mutation cg($good:GoodInput!){ setGood(good:$good){ _id, name, description, price } } query goods{ goods{ _id, name, description } } query good($_id:ID!){ good(_id:$_id){ _id, name, description } } mutation sO($order:OrderInput!){ setOrder(order:$order){ _id orderGoods{ _id, price, count, good{ _id, name } } } } mutation sOG($orderGood:OrderGoodInput!){ setOrderGood(orderGood:$orderGood){ _id, good{ _id, name, price }, price, order{ _id } } } query mO{ myOrders{ _id, orderGoods{ _id, price, count good{ name, price } } } } ``` переменные: ``` { "login": "foo", "password": "bar", "cat": { "_id": "5d3868a23aa7106a3a4369e6", "name": "Cars", "goods":["5d3874e8271cb784ad1d65a7"] }, "_id": "5d3874e8271cb784ad1d65a7", "good": { "_id": "5d3874e8271cb784ad1d65a7", "name": "iPhone", "description": "apple", "price": 500, "categories": ["5d3869cc216a156eba15b8db"] }, "order":{ }, "orderGood": { "good": "5d3874e8271cb784ad1d65a7", "order": "5d388f0786f70ff605a78700", "count": 2 } } ```