и донастроить его под свои нужды?
                  
                  
                  
                  
                  
                  например, я сделать клиент ктора настраиваемым (например, для моков, логгирования и чего-либо ещё). но также я хочу, чтобы клиент имел сериализацию, вебсокеты, whatever else. 
                  
                  
                  
                  
                  
                  есть какой-нибудь метод типа newBuilder() в okhttp
                  
                  
                
хз, но я бы наверное мокал не сам httpClient, а его движок. И такое даже есть: https://github.com/ktorio/ktor/blob/main/ktor-client/ktor-client-mock/common/src/io/ktor/client/engine/mock/MockEngine.kt
 Aλex
                          Sokol
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Aλex
                          Sokol
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  я и использую MockEngine.
Так а чем не подходит просто дать возможность задать кастомную конфигурацию в виде (HttpClientConfig) -> Unit, как и делает сам ktor?
 Aλex
                          Sokol
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Aλex
                          Sokol
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  class Repository(baseClient: HttpClient) { ... } первый вопрос: куда надо лямбду пихать? второй вопрос: что если мне надо иметь фичу сериализации в одном классе, но надо иметь другую фичу сериализации в другом классе?
Это уже разные клиенты надо делать, а на вход подавать какую-то "фабрику", в которой уже будет метод createClient(config: (KtorConfig) -> Unit)
 Aλex
                          Sokol
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Aλex
                          Sokol
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  тогда мне это не поможет иметь один клиент на все репозитории 😔
Так если им нужна разная конфигурация, о каком одном клиенте может идти речь? Главное чтобы engine был один, а обвязку вокруг него создать несколько раз не так страшно
 Aλex
                          Sokol
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Aλex
                          Sokol
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  все тредпулы находятся в enigne, получается?
Да, соединениями заправляет engine, остальное просто обвязка для удобного делания запросов и навешивания расширений
Задачу не до конца понял, так что вероятно не подойдет, но озвучу: Как вариант можно конечное количество инстансов предсаздать и в DI qualifier'ами / профилями инжектить в нужное место нужный
Обсуждают сегодня