docs: def register(self, resource=None, **kwargs):
          """ Register resource for currnet API.
  
          :param resource: Resource to be registered
          :type resource: jsonapi.resource.Resource or None
          :return: resource
          :rtype: jsonapi.resource.Resource
  
          .. versionadded:: 0.4.1
          :param kwargs: Extra meta parameters
  
          """
          if resource is None:
              def wrapper(resource):
                  return self.register(resource, **kwargs)
              return wrapper
  
          for key, value in kwargs.items():
              setattr(resource.Meta, key, value)
  
          if resource.Meta.name in self.resource_map:
              raise ValueError('Resource {} already registered'.format(
                  resource.Meta.name))
  
          if resource.Meta.name_plural in self.resource_map:
              raise ValueError(
                  'Resource plural name {} conflicts with registered resource'.
                  format(resource.Meta.name))
  
          resource_plural_names = {
              r.Meta.name_plural for r in self.resource_map.values()
          }
          if resource.Meta.name in resource_plural_names:
              raise ValueError(
                  'Resource name {} conflicts with other resource plural name'.
                  format(resource.Meta.name)
              )
  
          resource.Meta.api = self
          self._resources.append(resource)
          return resource