Size: a a a

2018 December 29

AE

Alexandr Emelyanov in Kotlin JVM
Vladislav Navrocky
JWT авторизация требует токен в хедере, мне надо сформировать URL по которому можно будет скачать файл без указания токена в хедере. Вот думаю как это решить, думал из параметра перекладывать токен в headers
тебе просто нужно часть url по паттерну исключить из обработчика авторизации и все
источник

VN

Vladislav Navrocky in Kotlin JVM
нет, все подряд не должны файл скачивать, только авторизованные
источник

VN

Vladislav Navrocky in Kotlin JVM
надо либо городить временные сессии на доступ к файлу, либо вот как-то по простому обойти
источник

KL

Kirill L in Kotlin JVM
Vladislav Navrocky
нет, все подряд не должны файл скачивать, только авторизованные
Временный токен?
источник

VN

Vladislav Navrocky in Kotlin JVM
ну типа того
источник

KL

Kirill L in Kotlin JVM
Генери его и прикладывай
источник

KL

Kirill L in Kotlin JVM
Jwt же умеет во время жизни
источник

VN

Vladislav Navrocky in Kotlin JVM
jwt токен нельзя в query запихнуть ( KTOR оттуда не умеет токен брать
источник

AE

Alexandr Emelyanov in Kotlin JVM
Vladislav Navrocky
jwt токен нельзя в query запихнуть ( KTOR оттуда не умеет токен брать
так хидером передать никак?
источник

VN

Vladislav Navrocky in Kotlin JVM
Alexandr Emelyanov
так хидером передать никак?
Ну а как? Судя по stackoverflow это возможно, но костыльно и не на всех браузерах работает...
источник

VN

Vladislav Navrocky in Kotlin JVM
источник

AE

Alexandr Emelyanov in Kotlin JVM
Vladislav Navrocky
Ну а как? Судя по stackoverflow это возможно, но костыльно и не на всех браузерах работает...
это задача клиента в любом случае
источник
2018 December 31

В

Вафель in Kotlin JVM
1) Куда в либе правильно класть папку examples?
src/
   main/...
   examples/...

?

2) Как для примеров правильно настроить зависимости на основную либу?
источник

AM

Andrew Mikhaylov in Kotlin JVM
Вафель
1) Куда в либе правильно класть папку examples?
src/
   main/...
   examples/...

?

2) Как для примеров правильно настроить зависимости на основную либу?
1) На твоё усмотрение, но чаще всего я наблюдаю либо examples в корне, либо отдельная репа с примерами.
2) Если речь о Gradle, то варианта два:
2а) либа собирается как модуль одного проекта, соседствующий с модулем либы. Зависимость тогда указывается как обычный implementation project(':lib'). Проще всего менеджить, но пользователь не сможет собрать пример отдельно от либы без модификаций.
2б) пример как отдельный Gradle-проект со своим settings.gradle. В качестве зависимости указываются мавен-координаты. При разработке можно использовать composite builds, подменяя мавен-координаты локальным проектом. Удобно, но а) сразу надо настраивать публикацию, хотя mavenLocal хватит, и б) надо, собственно, composite build раздуплить, благо идея его поддерживает нынче.
источник

AM

Andrew Mikhaylov in Kotlin JVM
Ну и при варианте 2б надо учитывать потенциальные дополнительные сложности с публикацией, к примеру пока что нерабочую публикацию koltin-multiplatform + aar и GRADLE_METADATA, рецепты по которой можно посмотреть в koltinx.coroutines и теперь ktor.
источник

В

Вафель in Kotlin JVM
Andrew Mikhaylov
1) На твоё усмотрение, но чаще всего я наблюдаю либо examples в корне, либо отдельная репа с примерами.
2) Если речь о Gradle, то варианта два:
2а) либа собирается как модуль одного проекта, соседствующий с модулем либы. Зависимость тогда указывается как обычный implementation project(':lib'). Проще всего менеджить, но пользователь не сможет собрать пример отдельно от либы без модификаций.
2б) пример как отдельный Gradle-проект со своим settings.gradle. В качестве зависимости указываются мавен-координаты. При разработке можно использовать composite builds, подменяя мавен-координаты локальным проектом. Удобно, но а) сразу надо настраивать публикацию, хотя mavenLocal хватит, и б) надо, собственно, composite build раздуплить, благо идея его поддерживает нынче.
> либа собирается как модуль одного проекта, соседствующий с модулем либы
Не понял что значит эта фраза 😅
источник

AM

Andrew Mikhaylov in Kotlin JVM
Вафель
> либа собирается как модуль одного проекта, соседствующий с модулем либы
Не понял что значит эта фраза 😅
Сорян, экзамплы собираются как модули одного проекта, соседствуя с модулем либы.
mycoolproject/
   build.gradle
   settings.gradle
   lib/
       build.gradle
   examples/
       example1/
           build.gradle
       example2/
           build.gradle

settings.gradle: include ':lib', ':examples:example1', ':examples:example2'
example1/build.gradle: depencencies { implementation project(':lib') }
источник

AM

Andrew Mikhaylov in Kotlin JVM
Второй вариант выглядел бы так:
mycoolproject/
   build.gradle
   settings.gradle
   lib/
       build.gradle
   examples/
       build.gradle
       settings.gradle
       example1/
           build.gradle
       example2/
           build.gradle

settings.gradle: include ':lib', папка examples никак не фигурирует тут.
lib/build.gradle: настроена публикация артефакта как 'org.example:mylib:1.0'
examples/settings.gradle: include ':example1', ':example2'
example1/build.gradle: depencencies { implementation 'org.example:mylib:1.0' }
источник

AM

Andrew Mikhaylov in Kotlin JVM
Ну и в examples/settings.gradle дополнительно настроено чёт вроде
if (new File(rootDir, '../settings.gradle').exists()) {
   includeBuild('..') {
       dependencySubstitution {
           substitute module('org.example:mylib') with project(':lib')
       }
   }
}

Это чтобы если сэмпл собирается из директории с либой, он собирал текущую версию либы вместо вытягивания её из мавена, что убирает необходимость постоянно публиковаться для запуска примера, но при этом а) можно собрать сэмпл и без либы, б) в примере указаны нормальные координаты, то есть из его build.gradle можно спокойно копипастить зависимость в свой проект.
источник

AM

Andrew Mikhaylov in Kotlin JVM
Ну и да — к котлину это всё совершенно никакого отношения не имеет 😁
источник