Орто денгээлдеги долбоор: маалымат базасы бар REST API
Уйронгонунуздун баарын бир чыныгы иштеген кызматка чогултунуз
- кичине Express долбоорун катмарларга (маршруттар, маалымат, авторизация, тесттер) болуштуруу,
- маалыматты SQLite базасында параметрлештирилген суроолор менен сактоо,
- туура HTTP-этиштер жана статус коддору менен CRUD-маршруттарын долбоорлоо,
- middleware катары текшеруу жана токен-аутентификация кошуу,
- ичик тест раннери жана Supertest менен интеграциялык тесттерди жазуу.
1. Биз эмне курууда жана ал кантип бириге турганы
Биздин долбоор - Bookshelf API: китептердин тизмесин сактап, кардарларга аларды HTTP аркылуу тузуп, окуп, жанылап, очуруп берген кызмат. Бул "тузуу, окуу, жанылоо, очуруу" тортулугу ушунчалык кенири тарагандыктан, анын аты бар - CRUD - жана ал REST менен дээрлик так дал келет.
REST (Representational State Transfer) - бул HTTP API стили. Анын негизи: сиздин маалыматыныз - бул ресурстардын жыйындысы, ар биринин URL бар, ал эми сиз аларга HTTP-методдору менен аракет кыласыз. Китептердин жыйнагы /books дарегинде турат; жеке китеп /books/42 дарегинде. Сиз URLде этиш ойлоп таппайсыз (/getBook, /deleteBook) - HTTP-метод эмне каалаганынызды буга чейин айтып турат.
Салыштыруу. APIни китепкананын беруу текчеси катары элестетиниз. Текчелер (маалымат базасы) китептерди сактайт. Китепканачы (сиздин Express колдонмонуз) - текчелерге тие турган жалгыз адам; коноктор ага кайрылышы керек. Кээ бир суроолор - "42-китепти корсот" - баарына ачык. Башкалары - "китеп кош", "китеп ыргыт" - кызматтык беджди (авторизация токенин) талап кылат. Ал эми жаны китепти киргизуудон мурун, китепканачы форма туура толтурулганын текшерет (текшеруу). Ар бир катмардын оз жалгыз милдети бар.
Бир суроо ушул катмарлардан кантип отуп жатканы мына:
APIни солдон онго окунуз: суроо текшерилет, валидацияланат, иштетилет, анан гана маалыматка жетет. Ушул милдеттерди болуп коюу орто денгээлдеги долбоорду бир чон чаташкан файл эмес, тейлое мумкун кылат.