def expected_spec(fake_jsonschema_asdataclass): message = asyncapi.Message( name='Fake Message', title='Faked', summary='Faked message', content_type='application/json', payload=fake_jsonschema_asdataclass.return_value, ) return asyncapi.Specification( info=asyncapi.Info( title='Fake API', version='0.0.1', description='Faked API', ), servers={ 'development': asyncapi.Server( name='development', url='fake.fake', protocol=asyncapi.ProtocolType.KAFKA, description='Fake Server', ) }, channels={ 'fake': asyncapi.Channel( name='fake', description='Fake Channel', subscribe=asyncapi.Operation( operation_id='fake_operation', message=message, ), publish=asyncapi.Operation(message=message), ) }, components=asyncapi.Components( messages={'FakeMessage': message}, schemas={ 'FakePayload': { 'type': 'object', 'properties': { 'faked': { 'type': 'integer' } }, } }, ), )
def message_to_channel( message: asyncapi.Message, response: asyncapi.Message = None, publish_made_first=False, description: str = None) -> typing.Tuple[str, asyncapi.Channel]: if publish_made_first: first_action, second_action = 'publish', 'subscribe' else: first_action, second_action = 'subscribe', 'publish' channel_kwargs = { 'description': description, first_action: asyncapi.Operation(message=message, ) } if response: channel_kwargs[second_action] = asyncapi.Operation(message=response, ) return message.name, asyncapi.Channel(**channel_kwargs)
dev_server = asyncapi.Server( url='localhost', protocol=asyncapi.ProtocolType.REDIS, description='Development Broker Server', ) message = asyncapi.Message( name='userUpdate', title='User Update', summary='Inform about users updates', payload=UserUpdatePayload, ) user_update_channel = asyncapi.Channel( description='Topic for user updates', subscribe=asyncapi.Operation( operation_id='receive_user_update', message=message, ), publish=asyncapi.Operation(message=message), ) spec = asyncapi.Specification( info=asyncapi.Info( title='User API', version='1.0.0', description='API to manage users', ), servers={'development': dev_server}, channels={'user/update': user_update_channel}, components=asyncapi.Components(messages={'UserUpdate': message}), )
name: Optional[str] = None age: Optional[int] = None dev_server = asyncapi.Server( url='asyncapi-local', protocol=asyncapi.ProtocolType.GCLOUD_PUBSUB, description='Development Broker Server', ) message = asyncapi.Message( name='userUpdate', title='User Update', summary='Inform about users updates', payload=UserUpdatePayload, ) user_update_channel = asyncapi.Channel( description='Topic for user updates', publish=asyncapi.Operation(message=message), ) spec = asyncapi.Specification( info=asyncapi.Info( title='User API', version='1.0.0', description='API to manage users', ), servers={'development': dev_server}, channels={'user-update': user_update_channel}, components=asyncapi.Components(messages={'UserUpdate': message}), )
dev_server = asyncapi.Server( url='localhost', protocol=asyncapi.ProtocolType.REDIS, description='Development Broker Server', ) message = asyncapi.Message( name='templateEvent', title='Template Event', summary='Template Event description', payload=TemplateEvent, ) user_update_channel = asyncapi.Channel( description='Topic for template events', subscribe=asyncapi.Operation( operation_id='receive_template_event', message=message, ), publish=asyncapi.Operation(message=message), ) api = asyncapi.Specification( info=asyncapi.Info( title='User API', version='1.0.0', description='API to manage users', ), servers={'development': dev_server}, channels={'user/update': user_update_channel}, components=asyncapi.Components(messages={'UserUpdate': message}), )