### Description

Before ES 7.x it was possible to provide a list of fields by URL or BODY request for field_caps API.
https://www.elastic.co/guide/en/elasticsearch/reference/6.8/search-field-caps.html
`POST _field_caps
{
   "fields" : ["rating"]
}`

Starting from 7.x this feature was removed, and only one possible way it uses URI but in this case, it is possible to have an error 414 (Request-URI Too Long).

I would like to return this feature back.
server/src/main/java/org/elasticsearch/rest/action/RestFieldCapabilitiesAction.java
@Override
    public String getName() {
        return "field_capabilities_action";
    }
    @Override
    public RestChannelConsumer prepareRequest(final RestRequest request, final NodeClient client) throws IOException {
        String[] indices = Strings.splitStringByCommaToArray(request.param("index"));
        FieldCapabilitiesRequest fieldRequest = new FieldCapabilitiesRequest().fields(
            Strings.splitStringByCommaToArray(request.param("fields"))
        ).indices(indices);
        fieldRequest.indicesOptions(IndicesOptions.fromRequest(request, fieldRequest.indicesOptions()));
        fieldRequest.includeUnmapped(request.paramAsBoolean("include_unmapped", false));
        fieldRequest.filters(request.paramAsStringArray("filters", Strings.EMPTY_ARRAY));
        fieldRequest.types(request.paramAsStringArray("types", Strings.EMPTY_ARRAY));
        request.withContentOrSourceParamParserOrNull(parser -> {
            if (parser != null) {
                PARSER.parse(parser, fieldRequest, null);
            }
        });
        return channel -> client.fieldCaps(fieldRequest, new RestToXContentListener<>(channel));
    }
    private static ParseField INDEX_FILTER_FIELD = new ParseField("index_filter");
    private static ParseField RUNTIME_MAPPINGS_FIELD = new ParseField("runtime_mappings");
    private static final ObjectParser<FieldCapabilitiesRequest, Void> PARSER = new ObjectParser<>("field_caps_request");
    static {
        PARSER.declareObject(FieldCapabilitiesRequest::indexFilter, (p, c) -> parseInnerQueryBuilder(p), INDEX_FILTER_FIELD);
        PARSER.declareObject(FieldCapabilitiesRequest::runtimeFields, (p, c) -> p.map(), RUNTIME_MAPPINGS_FIELD);
    }
}