Size: a a a

2020 December 25

LL

Lama Lover in pro.elixir
Ihor Katkov
Если мне нужен REST, то я беру phoenix и отдельно пишу документацию в apiary
Интересная тула, я раньше не знал
источник

LL

Lama Lover in pro.elixir
Если @nwalker @m3fgalm хотят что-то исправить, то мы можем все втроём написать либу, которая сделает нашу (и не только) жизнь лучше
источник

((

(fun () -> ()) in pro.elixir
Lama Lover
Есть phoenix_swagger, там меньше дубликаций кода, но он для Open API 2

Но я скажу, что лучше всё-таки взять open-api-spex и написать собственных макросов для убирания бойлерплейта
я бы с радостью, но боюсь это затянется ибо я пока ничего в них не понимаю) Вот если/когда выберу Elixir своих языком домашних проектов, то задумаюсь над своей либы (так-то у меня есть открытая тулза сделанная для другого языка)
источник

LL

Lama Lover in pro.elixir
(fun () -> ())
я бы с радостью, но боюсь это затянется ибо я пока ничего в них не понимаю) Вот если/когда выберу Elixir своих языком домашних проектов, то задумаюсь над своей либы (так-то у меня есть открытая тулза сделанная для другого языка)
И для какого языка, если не секрет?
источник

ДЭ

Даниил Элксниньш... in pro.elixir
Здравствуйте! Мы, команда школьников, создаём проект по профессиям в IT-сфере. Нам необходимо провести несколько интервью с работниками данной индустрии. Тех, кто может помочь с этим, прошу отписаться в ЛС.
источник

((

(fun () -> ()) in pro.elixir
Lama Lover
И для какого языка, если не секрет?
https://json2fsharp.com/ надеюсь за рекламу не сочтут. Денег не приносит (только тратит)
источник

LL

Lama Lover in pro.elixir
(fun () -> ())
https://json2fsharp.com/ надеюсь за рекламу не сочтут. Денег не приносит (только тратит)
А на F# как с open api работают?
Где посмотреть?
источник

((

(fun () -> ()) in pro.elixir
Lama Lover
А на F# как с open api работают?
Где посмотреть?
прямо для F# ничего нет, но есть для C# и мы через интероп вызваем. Всего пару строк
services.AddSwaggerGen(fun c -> c.SwaggerDoc("v1", OpenApiInfo(Title = "My API", Version = "v1"))) |> ignore
+
app.UseSwaggerUI(fun c -> c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"))`
app.UseSwagger() |> ignore
на этом всё. Схемы мы не пишем ибо при создании роутинга там есть типы и он сам генерит
источник

LL

Lama Lover in pro.elixir
(fun () -> ())
прямо для F# ничего нет, но есть для C# и мы через интероп вызваем. Всего пару строк
services.AddSwaggerGen(fun c -> c.SwaggerDoc("v1", OpenApiInfo(Title = "My API", Version = "v1"))) |> ignore
+
app.UseSwaggerUI(fun c -> c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"))`
app.UseSwagger() |> ignore
на этом всё. Схемы мы не пишем ибо при создании роутинга там есть типы и он сам генерит
А, ну на Elixir, конечно, можно из типов генерить, но пока такого нет

Проблема в том, что dialyzer (местный статический типизатор) не умеет полностью выводить типы, поэтому всё равно придётся писать какие-то описания данных
источник

((

(fun () -> ()) in pro.elixir
ну, описывать схемы это норм, но вот всё остальное...
источник

AB

Alex Bubnov in pro.elixir
Lama Lover
А, ну на Elixir, конечно, можно из типов генерить, но пока такого нет

Проблема в том, что dialyzer (местный статический типизатор) не умеет полностью выводить типы, поэтому всё равно придётся писать какие-то описания данных
а зачем, если можно описать типы и реюзать это описание для приведения?
источник

AB

Alex Bubnov in pro.elixir
статическая типизация в этом месте не просто не нужна, а еще и вредна
источник

LL

Lama Lover in pro.elixir
Alex Bubnov
а зачем, если можно описать типы и реюзать это описание для приведения?
Так и напиши свой генератор json-схем из типов, это не сложно

Можно даже прикрутить эрланговские либы (у 99s что-то такое было), чтобы не изобретать велосипед
источник

LL

Lama Lover in pro.elixir
Alex Bubnov
статическая типизация в этом месте не просто не нужна, а еще и вредна
Что ты имеешь в виду?
источник

AB

Alex Bubnov in pro.elixir
Lama Lover
Что ты имеешь в виду?
я имею ввиду, что не нужно пытаться втащить на уровень компилятора то, что можно описать данными.
то есть, здесь речь про типы компилятора или диалайзера вообще неуместна.
источник

((

(fun () -> ()) in pro.elixir
Alex Bubnov
статическая типизация в этом месте не просто не нужна, а еще и вредна
не соглашусь. здесь работа с пропертями делается дважды: первый раз для описания для свагера, второй для деструктуризации в самой апи. С типами это можно за 1 раз сделать
источник

((

(fun () -> ()) in pro.elixir
я не хочу скатыватся в холивар динамика против статики, но здесь конкретно не вижу профита
источник

LL

Lama Lover in pro.elixir
Так в elixir есть структуры, они классно работают
Можно подумать насчёт объединения типизированных структур и спек
источник

LL

Lama Lover in pro.elixir
Можно даже попробовать генерить спеки из Ecto.Schema
источник

((

(fun () -> ()) in pro.elixir
Lama Lover
Так в elixir есть структуры, они классно работают
Можно подумать насчёт объединения типизированных структур и спек
было бы круто
источник