Oltita boshqaruv cheklovlari RESTful tizimini tavsiflaydi. Ular serverning mijoz so'rovlarini qayta ishlash va qabul qilish usullarini cheklaydi. Ushbu cheklovlar doirasida ishlash orqali xizmat unumdorlik, masshtablilik, soddalik, o'zgaruvchanlik, ko'rinish, portativlik va ishonchlilik kabi kerakli nofunktsional xususiyatlarni oladi. Agar xizmat har qanday talab qilinadigan cheklovlarni buzsa, uni RESTful deb hisoblash mumkin emas.
Birinchi cheklovlar mijoz-server arxitektura uslubiga tegishli. Xavotirlarni ajratish foydalanuvchi interfeysi saqlash muammolari bilan bir nechta platformalarda foydalanuvchi interfeysining ko'chmaligini yaxshilaydi. Shuningdek, u server komponentlarini soddalashtirish orqali miqyoslilikni yaxshilaydi. Ehtimol, Internet uchun eng muhimi, ajratish komponentlarning o'z-o'zidan rivojlanishiga imkon beradi va shu bilan bir nechta tashkiliy domenlarning Internet miqyosdagi talablarini qo'llab-quvvatlaydi.
REST o'rnatilgan xavfsizlikni ta'minlamaydi. Bu REST veb-xizmatlarini loyihalashda juda muhim - xavfsizlik va dizayn talablari oldindan qondiriladi. REST veb-xizmatlari CRUD operatsiyalaridan HTTP PUT va DELETE-dan foydalanadi. PUT va DELETE ko'pgina brauzerlar tomonidan qo'llab-quvvatlanmaydi va ko'pincha maxfiylikning mumkin bo'lgan buzilishlari tufayli server darajasida o'chirib qo'yiladi. Agar u server va mijoz darajasida to'g'ri sozlanmagan bo'lsa, har qanday ruxsatsiz foydalanuvchi resursni qo'yishi yoki foydalanishdagi DELETE resursini yo'q qilishi mumkin. Veb-xizmatlar uchun xavfsizlik talablarini ishlab chiqishda ushbu fikrlarni hisobga olish kerak.
Arxitektura elementlari
REST ning asosiy jihati uning ma'lumotlar elementlarining tabiati va holatidir. REST-da axborotning xatti-harakati va holatini tavsiflovchi to'rtta tushuncha mavjud.
Resurs - bu Internetda mavjud bo'lgan ob'ekt (mantiqiy yoki jismoniy). Bu saqlangan hujjat bo'lishi mumkin fayl tizimi server yoki ma'lumotlar bazasi jadvalidagi qator. Yakuniy foydalanuvchi ma'lum bir maqsadga erishish uchun resurs bilan o'zaro aloqada bo'ladi. REST-dan foydalangan holda tizimni loyihalash uchun ishlab chiquvchi biznes ob'ektlarini resurslar va ularni qanday hal qilish mumkinligi haqida o'ylashi kerak.
URI - resursni noyob tarzda aniqlaydi. Ushbu parametr resursni manzilli qiladi va uni o'zgartirish mumkin. Resurslar HTTP kabi dastur protokoli yordamida o'zgartiriladi.
Ko'rish - bir vaqtning o'zida manba holati. URI so'ralganda mijoz resurs taqdimotini oladi. Resurs ko'rinishi XML, HTML, JSON, RSS, REST API java kabi bir yoki bir nechta uzatiladigan formatlarda kodlanishi mumkin. Ushbu formatlar kontentni muhokama qilish mexanizmi yordamida kelishilishi mumkin.
Bog'lanish - Ilovaga bir holatdan ikkinchisiga o'tishga ruxsat beradi. Har bir resurs boshqa manbalarga ulangan bo'lishi kerak. Ko'rinish keyingi o'tishga havolani taklif qilishi kerak. Yaxshi ulangan dastur foydalanuvchiga interfeysni mustaqil ravishda ochish imkonini beradi.
2)
Zaxira buyumlar tartibini avtomatlashtirish tizimi omborxona tizimiga juda o’xshash bo’lib, unda biz o’z zaxiralarimizni masalan tabriknoma ishlab chiqaruvchi firma ozining zahirasida qancha tabriknoma ishlab chiqarish uchun mo’jjallangan maxsus qog’oz va qancha siyoh va qancha tayyor mahsulot borligini online xolatda kuzatish, nazorat qilish, mahsulotlarni qo’shish va ularni olib tashlash mahsulot zahirasi qanchaga yetishi, qaysi mahsulotlar me’yoridan ozaygani haqidagi ma’lumotlarni online ko’rishga imkon beradigan browser muhitida ishlaydigan tizim bo’ladi.Tizim yuqorida aytganimizdek 2 asosiy qismga bo’linadi client-server
Server qismida Nodejs,ExpressJs,MongoDB ishlatiladi.
Client qismida esa React js ishlatiladi.
Tizim qismlari:
Tizimga kirish qismi;
Sozlamalar
1.Mahsulot birliklarini yaratish
2.Yangi mahsulot qo’shish
Mahsulot qabul qilish(kirim)
Mahsulot chiqarish(chiqim)
Mahsulotlar jadvali
Statistika
II.Amaliy qism
1)
Yangi react project yaratamiz (create-react-app yordamida) va unga yordamchi packagelarni o’rnatamiz. So’ng esa arxitekturaga mos ravishda folderlarni yaratib olamiz.Undan so’ng Kirish qismini yaratish uchun Login componentda yaratib uni chizib, stylarini to’g’irlab server bilan ulashga tayyorlaymiz.
import React, { useEffect } from 'react'
import { Button, Checkbox, Form, Input } from 'antd'
import styles from './login.module.scss'
import bg from '../../assets/img/bg.png'
import { Login as LoginI } from '../../utils/models/Login'
import { useSignIn } from '../../queries/mutation'
import { helper } from '../../utils/helper/helper'
import ErrorIcon from '../../assets/icons/ErrorIcon'
import { LocalStorage } from '../../service/LocalStorage'
import { TOKEN_KEY, USER_KEY } from '../../utils/constants/localStorageKeys'
import { useTranslation } from 'react-i18next'
import { signInSuccess } from '../../utils/helper/signInSuccess'
import { User } from '../../utils/models/User'
function Login() {
const [form] = Form.useForm()
const { t } = useTranslation()
const login = useSignIn()
useEffect(() => {
const token = LocalStorage.get(TOKEN_KEY)
const user = LocalStorage.get(USER_KEY)
if (token && user) {
signInSuccess(user as User)
}
}, [])
const onFinish = (values: LoginI) => {
login.mutate(values)
}
const onFinishFailed = (errorInfo: any) => {
console.log('Failed:', errorInfo)
}
return (
Do'stlaringiz bilan baham: |