public List<RouterOperation> getRouterOperations(OpenAPI openAPI, Locale locale) {
		List<RouterOperation> routerOperationList = new ArrayList<>();
		handlerMappingList = getHandlerMappingList();
		Associations associations = applicationContext.getBean(Associations.class);
		ResourceMappings mappings = applicationContext.getBean(ResourceMappings.class);
		PersistentEntities persistentEntities = applicationContext.getBean(PersistentEntities.class);
		Repositories repositories = applicationContext.getBean(Repositories.class);
		for (Class<?> domainType : repositories) {
			Class<?> repository = repositories.getRequiredRepositoryInformation(domainType).getRepositoryInterface();
			DataRestRepository dataRestRepository = new DataRestRepository(domainType, repository, locale);
			ResourceMetadata resourceMetadata = mappings.getMetadataFor(domainType);
			final PersistentEntity<?, ?> entity = persistentEntities.getRequiredPersistentEntity(domainType);
			dataRestRepository.setPersistentEntity(entity);
			final JacksonMetadata jackson = new JacksonMetadata(mapper, domainType);
			boolean hiddenRepository = (AnnotationUtils.findAnnotation(repository, Hidden.class) != null);
			if (!hiddenRepository) {
				if (resourceMetadata != null && resourceMetadata.isExported()) {
					for (HandlerMapping handlerMapping : handlerMappingList) {
						if (handlerMapping instanceof RepositoryRestHandlerMapping repositoryRestHandlerMapping) {
							Map<RequestMappingInfo, HandlerMethod> handlerMethodMap = repositoryRestHandlerMapping.getHandlerMethods();
							// Entity controllers lookup first
							Map<RequestMappingInfo, HandlerMethod> handlerMethodMapFiltered = handlerMethodMap.entrySet().stream()
									.filter(requestMappingInfoHandlerMethodEntry -> REPOSITORY_ENTITY_CONTROLLER.equals(requestMappingInfoHandlerMethodEntry
											.getValue().getBeanType().getName()))
									.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (a1, a2) -> a1));
							dataRestRepository.setControllerType(ControllerType.ENTITY);
							findControllers(routerOperationList, handlerMethodMapFiltered, resourceMetadata, dataRestRepository, openAPI);

							Map<RequestMappingInfo, HandlerMethod> handlerMethodMapFilteredMethodMap = handlerMethodMap.entrySet().stream()
									.filter(requestMappingInfoHandlerMethodEntry -> REPOSITORY_PROPERTY_CONTROLLER.equals(requestMappingInfoHandlerMethodEntry
											.getValue().getBeanType().getName()))
									.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (a1, a2) -> a1));

							entity.doWithAssociations((SimpleAssociationHandler) association -> {
								PersistentProperty<?> property = association.getInverse();
								if (jackson.isExported(property) && associations.isLinkableAssociation(property)) {
									dataRestRepository.setRelationName(resourceMetadata.getMappingFor(property).getRel().value());
									dataRestRepository.setControllerType(ControllerType.PROPERTY);
									dataRestRepository.setCollectionLike(property.isCollectionLike());
									dataRestRepository.setMap(property.isMap());
									dataRestRepository.setPropertyType(property.getActualType());
									findControllers(routerOperationList, handlerMethodMapFilteredMethodMap, resourceMetadata, dataRestRepository, openAPI);
								}
							});
						}
						else if (handlerMapping instanceof BasePathAwareHandlerMapping beanBasePathAwareHandlerMapping) {
							Map<RequestMappingInfo, HandlerMethod> handlerMethodMap = beanBasePathAwareHandlerMapping.getHandlerMethods();
							Map<RequestMappingInfo, HandlerMethod> handlerMethodMapFiltered = handlerMethodMap.entrySet().stream()
									.filter(requestMappingInfoHandlerMethodEntry -> REPOSITORY_SCHEMA_CONTROLLER.equals(requestMappingInfoHandlerMethodEntry
											.getValue().getBeanType().getName()))
									.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (a1, a2) -> a1));
							dataRestRepository.setControllerType(ControllerType.SCHEMA);
							findControllers(routerOperationList, handlerMethodMapFiltered, resourceMetadata, dataRestRepository, openAPI);
							handlerMethodMapFiltered = handlerMethodMap.entrySet().stream()
									.filter(requestMappingInfoHandlerMethodEntry -> ProfileController.class.equals(requestMappingInfoHandlerMethodEntry
											.getValue().getBeanType()) || AlpsController.class.equals(requestMappingInfoHandlerMethodEntry
											.getValue().getBeanType()))
									.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (a1, a2) -> a1));
							dataRestRepository.setControllerType(ControllerType.GENERAL);
							findControllers(routerOperationList, handlerMethodMapFiltered, resourceMetadata, dataRestRepository, openAPI);
						}
					}
				}
				// search
				findSearchResourceMappings(openAPI, routerOperationList, handlerMappingList, dataRestRepository, resourceMetadata, associations);
			}
		}
		return routerOperationList;
	}
Gets router operations.

@param openAPI the open api
@param locale  the locale
@return the router operations
springdoc-openapi-starter-common/src/main/java/org/springdoc/core/providers/SpringRepositoryRestResourceProvider.java