mirror of
https://github.com/graphql-python/graphene.git
synced 2025-02-02 20:54:16 +03:00
Update UPGRADE-v2.0.md
Migration docs improvement
This commit is contained in:
parent
12d4dab774
commit
5d084cf2ea
|
@ -122,6 +122,13 @@ def resolve_my_field(self, info, my_arg):
|
||||||
return ...
|
return ...
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**PS.: Take care with receiving args like `my_arg` as above. This doesn't work for optional (non-required) arguments as stantard `Connection`'s arguments (first, before, after, before).**
|
||||||
|
You may need something like this:
|
||||||
|
|
||||||
|
```python
|
||||||
|
def resolve_my_field(self, info, known_field1, known_field2, **args): ## get other args with: args.get('arg_key')
|
||||||
|
```
|
||||||
|
|
||||||
And, if you need the context in the resolver, you can use `info.context`:
|
And, if you need the context in the resolver, you can use `info.context`:
|
||||||
|
|
||||||
```python
|
```python
|
||||||
|
@ -193,7 +200,42 @@ class MyObject(ObjectType):
|
||||||
|
|
||||||
## Mutation.mutate
|
## Mutation.mutate
|
||||||
|
|
||||||
Now only receives (`root`, `info`, `**args`)
|
Now only receives (`self`, `info`, `**args`) and if not a @classmethod
|
||||||
|
|
||||||
|
Before:
|
||||||
|
|
||||||
|
```python
|
||||||
|
class SomeMutation(Mutation):
|
||||||
|
...
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def mutate(cls, instance, args, context, info):
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
With 2.0:
|
||||||
|
|
||||||
|
```python
|
||||||
|
class SomeMutation(Mutation):
|
||||||
|
...
|
||||||
|
|
||||||
|
def mutate(self, info, **args):
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
With 2.0 you can also get your declared (as above) `args` this way:
|
||||||
|
|
||||||
|
```python
|
||||||
|
class SomeMutation(Mutation):
|
||||||
|
class Arguments:
|
||||||
|
first_name = String(required=True)
|
||||||
|
last_name = String(required=True)
|
||||||
|
...
|
||||||
|
|
||||||
|
def mutate(self, info, first_name, last_name):
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## ClientIDMutation.mutate_and_get_payload
|
## ClientIDMutation.mutate_and_get_payload
|
||||||
|
@ -201,6 +243,35 @@ Now only receives (`root`, `info`, `**args`)
|
||||||
Now only receives (`root`, `info`, `**input`)
|
Now only receives (`root`, `info`, `**input`)
|
||||||
|
|
||||||
|
|
||||||
|
### Middlewares
|
||||||
|
|
||||||
|
If you are using Middelwares, you need to some adjustments:
|
||||||
|
|
||||||
|
Before:
|
||||||
|
|
||||||
|
```python
|
||||||
|
class MyGrapheneMiddleware(object):
|
||||||
|
def resolve(self, next_mw, root, args, context, info):
|
||||||
|
|
||||||
|
## Middleware code
|
||||||
|
|
||||||
|
return next_mw(root, args, context, info)
|
||||||
|
```
|
||||||
|
|
||||||
|
With 2.0:
|
||||||
|
|
||||||
|
```python
|
||||||
|
class MyGrapheneMiddleware(object):
|
||||||
|
def resolve(self, next_mw, root, info, **args):
|
||||||
|
context = info.context
|
||||||
|
|
||||||
|
## Middleware code
|
||||||
|
|
||||||
|
info.context = context
|
||||||
|
return next_mw(root, info, **args)```
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## New Features
|
## New Features
|
||||||
|
|
||||||
### InputObjectType
|
### InputObjectType
|
||||||
|
|
Loading…
Reference in New Issue
Block a user