diff --git a/apispec/core.py b/apispec/core.py
index b3142e7..ddada9e 100644
--- a/apispec/core.py
+++ b/apispec/core.py
@@ -277,13 +277,17 @@ class APISpec(object):
         self._tags.append(tag)
         return self
 
-    def path(self, path=None, operations=None, **kwargs):
+    def path(
+        self, path=None, operations=None, summary=None, description=None, **kwargs
+    ):
         """Add a new path object to the spec.
 
         https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#path-item-object
 
         :param str|None path: URL path component
         :param dict|None operations: describes the http methods and options for `path`
+        :param str summary: short summary relevant to all operations in this path
+        :param str description: long description relevant to all operations in this path
         :param dict kwargs: parameters used by any path helpers see :meth:`register_path_helper`
         """
         operations = operations or OrderedDict()
@@ -309,4 +313,8 @@ class APISpec(object):
         clean_operations(operations, self.openapi_version.major)
 
         self._paths.setdefault(path, operations).update(operations)
+        if summary is not None:
+            self._paths[path]["summary"] = summary
+        if description is not None:
+            self._paths[path]["description"] = description
         return self

diff --git a/tests/test_core.py b/tests/test_core.py
index 594c035..cd13657 100644
--- a/tests/test_core.py
+++ b/tests/test_core.py
@@ -298,6 +298,15 @@ class TestPath:
             spec.path()
         assert "Path template is not specified" in str(excinfo)
 
+    def test_path_summary_description(self, spec):
+        summary = "Operations on a Pet"
+        description = "Operations on a Pet identified by its ID"
+        spec.path(path="/pet/{petId}", summary=summary, description=description)
+
+        p = get_paths(spec)["/pet/{petId}"]
+        assert p["summary"] == summary
+        assert p["description"] == description
+
     def test_parameter(self, spec):
         route_spec = self.paths["/pet/{petId}"]["get"]
 

Add support for `summary` and `description` fields for paths
Documented [here](https://swagger.io/docs/specification/paths-and-operations/):

> Paths may have an optional short summary and a longer description for documentation purposes. This information is supposed to be relevant to all operations in this path. description can be multi-line and supports Markdown (CommonMark) for rich text representation. 
tests/test_core.py::TestPath::test_path_summary_description[2.0] tests/test_core.py::TestPath::test_path_summary_description[3.0.0]
tests/test_core.py::TestAPISpecInit::test_raises_wrong_apispec_version tests/test_core.py::TestMetadata::test_openapi_metadata[2.0] tests/test_core.py::TestMetadata::test_openapi_metadata[3.0.0] tests/test_core.py::TestMetadata::test_openapi_metadata_merge_v3[3.0.0] tests/test_core.py::TestTags::test_tag[2.0] tests/test_core.py::TestTags::test_tag[3.0.0] tests/test_core.py::TestTags::test_tag_is_chainable[2.0] tests/test_core.py::TestTags::test_tag_is_chainable[3.0.0] tests/test_core.py::TestDefinitions::test_definition[2.0] tests/test_core.py::TestDefinitions::test_definition[3.0.0] tests/test_core.py::TestDefinitions::test_definition_is_chainable[2.0] tests/test_core.py::TestDefinitions::test_definition_is_chainable[3.0.0] tests/test_core.py::TestDefinitions::test_definition_description[2.0] tests/test_core.py::TestDefinitions::test_definition_description[3.0.0] tests/test_core.py::TestDefinitions::test_definition_stores_enum[2.0] tests/test_core.py::TestDefinitions::test_definition_stores_enum[3.0.0] tests/test_core.py::TestDefinitions::test_definition_extra_fields[2.0] tests/test_core.py::TestDefinitions::test_definition_extra_fields[3.0.0] tests/test_core.py::TestDefinitions::test_definition_duplicate_name[2.0] tests/test_core.py::TestDefinitions::test_definition_duplicate_name[3.0.0] tests/test_core.py::TestDefinitions::test_to_yaml[2.0] tests/test_core.py::TestDefinitions::test_to_yaml[3.0.0] tests/test_core.py::TestPath::test_path[2.0] tests/test_core.py::TestPath::test_path[3.0.0] tests/test_core.py::TestPath::test_paths_maintain_order[2.0] tests/test_core.py::TestPath::test_paths_maintain_order[3.0.0] tests/test_core.py::TestPath::test_paths_is_chainable[2.0] tests/test_core.py::TestPath::test_paths_is_chainable[3.0.0] tests/test_core.py::TestPath::test_methods_maintain_order[2.0] tests/test_core.py::TestPath::test_methods_maintain_order[3.0.0] tests/test_core.py::TestPath::test_path_merges_paths[2.0] tests/test_core.py::TestPath::test_path_merges_paths[3.0.0] tests/test_core.py::TestPath::test_path_ensures_path_parameters_required[2.0] tests/test_core.py::TestPath::test_path_ensures_path_parameters_required[3.0.0] tests/test_core.py::TestPath::test_path_with_no_path_raises_error[2.0] tests/test_core.py::TestPath::test_path_with_no_path_raises_error[3.0.0] tests/test_core.py::TestPath::test_parameter[2.0] tests/test_core.py::TestPath::test_parameter[3.0.0] tests/test_core.py::TestPath::test_parameter_is_chainable[2.0] tests/test_core.py::TestPath::test_parameter_is_chainable[3.0.0] tests/test_core.py::TestPath::test_parameter_duplicate_name[2.0] tests/test_core.py::TestPath::test_parameter_duplicate_name[3.0.0] tests/test_core.py::TestPath::test_response[2.0] tests/test_core.py::TestPath::test_response[3.0.0] tests/test_core.py::TestPath::test_response_is_chainable[2.0] tests/test_core.py::TestPath::test_response_is_chainable[3.0.0] tests/test_core.py::TestPath::test_response_duplicate_name[2.0] tests/test_core.py::TestPath::test_response_duplicate_name[3.0.0] tests/test_core.py::TestPath::test_security_scheme[2.0] tests/test_core.py::TestPath::test_security_scheme[3.0.0] tests/test_core.py::TestPath::test_security_scheme_is_chainable[2.0] tests/test_core.py::TestPath::test_security_scheme_is_chainable[3.0.0] tests/test_core.py::TestPath::test_security_scheme_duplicate_name[2.0] tests/test_core.py::TestPath::test_security_scheme_duplicate_name[3.0.0] tests/test_core.py::TestPath::test_path_check_invalid_http_method[2.0] tests/test_core.py::TestPath::test_path_check_invalid_http_method[3.0.0] tests/test_core.py::TestPlugins::test_plugin_factory tests/test_core.py::TestPlugins::test_plugin_schema_helper_is_used[True-2.0] tests/test_core.py::TestPlugins::test_plugin_schema_helper_is_used[True-3.0.0] tests/test_core.py::TestPlugins::test_plugin_schema_helper_is_used[False-2.0] tests/test_core.py::TestPlugins::test_plugin_schema_helper_is_used[False-3.0.0] tests/test_core.py::TestPlugins::test_plugin_parameter_helper_is_used[True-2.0] tests/test_core.py::TestPlugins::test_plugin_parameter_helper_is_used[True-3.0.0] tests/test_core.py::TestPlugins::test_plugin_parameter_helper_is_used[False-2.0] tests/test_core.py::TestPlugins::test_plugin_parameter_helper_is_used[False-3.0.0] tests/test_core.py::TestPlugins::test_plugin_response_helper_is_used[True-2.0] tests/test_core.py::TestPlugins::test_plugin_response_helper_is_used[True-3.0.0] tests/test_core.py::TestPlugins::test_plugin_response_helper_is_used[False-2.0] tests/test_core.py::TestPlugins::test_plugin_response_helper_is_used[False-3.0.0] tests/test_core.py::TestPlugins::test_plugin_path_helper_is_used[True-2.0] tests/test_core.py::TestPlugins::test_plugin_path_helper_is_used[True-3.0.0] tests/test_core.py::TestPlugins::test_plugin_path_helper_is_used[False-2.0] tests/test_core.py::TestPlugins::test_plugin_path_helper_is_used[False-3.0.0] tests/test_core.py::TestPlugins::test_plugin_operation_helper_is_used[2.0] tests/test_core.py::TestPlugins::test_plugin_operation_helper_is_used[3.0.0] tests/test_core.py::TestPluginsOrder::test_plugins_order