Membuat Service User Register Bagian 1 - Django

Subscribe Dengan Account Google Untuk Membaca Artikel Tanpa Iklan
Membuat Service User Register Bagian 1 - Django

Pada beberapa tutorial sebelumnya kita telah belajar tentang service user login, tidak lengkap rasanya kalau kita tidak membuat service register.

Service register merupakan pintu utama interaksi user dengan sistem yang kita bangun, banyak metode atau cara yang biasanya di gunakan user untuk register sering juga di sebut simple register.

Biasanya simpel register menggunakan third party atau pihak ketiga seperti api dari twitter, facebook, google dan yang lainya.

Pada tutorial ini kita juga akan belajar membuat simple register, user hanya perlu memasukan email dan password.

Berikut ini beberapa hal yang akan kita pelajari dibagian 1 ini.

1) Request Body


Dibagian ini user perlu melengkapi paylod request body yang akan di proses oleh service register user.

{
"email":"user@example.com",
"password":"password@1223G",
"full_name":"Test By Johan"
}

2) Response Body


Dibagian ini kita punya dua message response body yaitu response register sukses dan response register gagal:

Succes:

{
"status":"00",
"message":" Register Success, Check email and click link activation"
}

Gagal:

{
"status":"-1",
"message":"Register Failed, {dynamic-message}
}

3) Serializer Register User


Buat class serializer untuk memfilter payload request

class RegisterNewUser(serializers.Serializer):
email = serializers.CharField(max_length=35)
password = serializers.CharField(max_length=35)
full_name = serializers.CharField(max_length=150)

4) Fungsi Create New User


Anda perlu membuat fungsi untuk menambahkan user ke database, di bagian ini anda bisa menggunakan method create_user(), method ini merupakan builtin dari django framework
User.objects.create_user()

def create_register_user(data):
try:
User.objects.create_user(username= data['email'],
email=data['email'],
password=data['password'],
first_name=data['full_name']
)
common_response['status'] = '00'
common_response['message'] = 'Register Success, Check email and click link activation'
except Exception as e:
common_response['status'] = '-1'
common_response['message'] = str(e)
return common_response

5) Class API Register User


Dibagian ke 3 kita sudah membuat serializer, tambahkan serializer ke dalam class Api Register User.

class RegisterNewUserView(APIView):
def post(self, *args, **kwargs):
try:
data = JSONParser().parse(self.request)
serializer = RegisterNewUserSerializer(data=data)
if serializer.is_valid():
resp = create_register_user(data)
return JsonResponse(data = resp, status=200)
else:
return JsonResponse(serializer.errors, status=400)
except Exception as e:
return JsonResponse(data = {
"message": str(e)
}, status=400)

Serializer akan memvalidasi format payload yang di kirim oleh service client.

6) Unit Test


Unit test merupakan bagian terpenting dari rangkaian proses yang kita buat, di bagian ini kita akan menguji logika yang sudah buat apakah sesuai dengan ekspektasi atau belum.

class CreateNewUserTestCase(TestCase):
data = {
"email":"user@example.com",
"password":"password@1223G",
"full_name":"Test By Johan"
}
def test_create_register_user_success(self):
resp = create_register_user(self.data)
self.assertEqual(resp['status'], "00")

7) Test Life Cycle via Postman


Uji terlebih daulu service register new user menggunakan postman, agar Anda bsia mendapat gambaran alur proses register user yang lebih valid.

8) Video Tutorial Lengkap


Video :

Githubhttps://github.com/halovina/hvsuserservice/tree/register-user-bagian-1

Baca artikel lainya:


  1. Membuat service user login bagian 1 - Konfigurasi Database

  2. Membuat service user login bagian 2 - Serializer dan JWT

  3. Membuat CRUD service product bagian 1 - Models Product

  4. Membuat CRUD service product bagian 2 - Function Serializer

  5. Membuat CRUD service product bagian 3 - Api Client Service

  6. Membaut CRUD service product bagian 4 - Auth User

  7. Membuat CRUD service product bagian 5 - TDR File Log

  8. Membuat CRUD service product bagian 6 - Unit Test

  9. Django upload file menggunakan FileSystemStorage

  10. Tips meningkatkan kualitas code pada bahasa python

  11. Cara memfilter tipe data string pada golang dan python

  12. Mengubah format datetime pada bahasa python

  13. Mengolah data CSV dengan python pandas

  14. Sample join data CSV di python menggunakan pandas

  15. Menggunakan redis PUB/SUB untuk aplikasi python

  16. Implementasi blockchain ethereum pada industri real estate

  17. 4 Cara mengubah dictionary ke json pada python