def iter_request_header_errors(self, request_headers): """ Validates individual request headers against the schema, yielding a :class:`~spectastic.errors.FieldError` for each failure. """ header_schemas = self.header_schemas() if len(header_schemas) == 0: return request_headers = Headers(request_headers) for header, value in request_headers.iteritems(): if header in header_schemas: schema = self.header_schema(header) for error in self.validator.iter_errors(value, schema): yield FieldError(error.message, 'header', header) for name, schema in header_schemas.iteritems(): if schema.get('required') and name.lower() \ not in request_headers: yield FieldError( 'Required header is missing', 'header', schema.get('name') )