¿Es posible tener múltiples GET que varían solo según los parámetros en ASP.NET Core?

Quiero crear un servicio web realmente RESTful, así que no quiero aprovechar el estilo RPC, así que actualmente tengo esto:

[HttpGet]
[ActionName(nameof(GetByParticipant))]
public async Task<IActionResult> GetByParticipant([FromQuery]string participantId, [FromQuery]string participantType, [FromQuery]string programName)
{
}

[HttpGet]
[ActionName(nameof(GetByProgram))]
public async Task<IActionResult> GetByProgram([FromQuery]string programName)
{
}

Y creo que eso funcionaría en ASP.NET Web API. Pero estoy recibiendo una excepción:

AmbiguousActionException: múltiples acciones coincidentes. Las siguientes acciones coincidieron con los datos de la ruta y se cumplieron todas las restricciones:

TermsController.GetByParticipant (ParticipantTerms.Api)

TermsController.GetByProgram (ParticipantTerms.Api)

Ninguno de los atributos realmente ayuda:

[HttpGet][ActionName][FromQuery]

Respuestas a la pregunta(3)

Su respuesta a la pregunta