Làm cách nào để lấy tên người dùng và mật khẩu cho yêu cầu nhận trong python?

Chương này phác thảo việc gửi các yêu cầu API tới Vệ tinh Red Hat bằng curl, Ruby và Python, đồng thời cung cấp các ví dụ

4. 1. Yêu cầu API với curl

Phần này phác thảo cách sử dụng

--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}
3 với API vệ tinh để thực hiện các tác vụ khác nhau

Red Hat Satellite yêu cầu sử dụng HTTPS và theo mặc định là chứng chỉ để nhận dạng máy chủ. Nếu bạn chưa thêm chứng chỉ Máy chủ vệ tinh như được mô tả trong Phần 3. 1, “Tổng quan về xác thực SSL”, thì bạn có thể sử dụng tùy chọn

--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}
4 để bỏ qua kiểm tra chứng chỉ

Để xác thực người dùng, bạn có thể sử dụng tùy chọn

--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}
5 để cung cấp thông tin đăng nhập của người dùng Vệ tinh ở dạng
--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}
6 hoặc, nếu bạn không bao gồm mật khẩu, lệnh sẽ nhắc bạn nhập mật khẩu. Để giảm rủi ro bảo mật, không bao gồm mật khẩu như một phần của lệnh, vì sau đó mật khẩu sẽ trở thành một phần lịch sử trình bao của bạn. Các ví dụ trong phần này chỉ bao gồm mật khẩu vì mục đích đơn giản

Xin lưu ý rằng nếu bạn sử dụng tùy chọn

--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}
7, thì
--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}
3 sẽ không hiển thị đồng hồ đo tiến độ hoặc bất kỳ thông báo lỗi nào

Các ví dụ trong chương này sử dụng mô-đun Python

--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}
9 để định dạng đầu ra

4. 1. 1. Truyền dữ liệu JSON cho yêu cầu API

Bạn có thể truyền dữ liệu đến Máy chủ vệ tinh bằng yêu cầu API. Dữ liệu phải ở định dạng JSON. Khi chỉ định dữ liệu JSON bằng tùy chọn

--data @file.json
0, bạn phải đặt các tiêu đề HTTP sau bằng tùy chọn
--data @file.json
1

--header "Accept:application/json,version=2" \
--header "Content-Type:application/json"

Sử dụng một trong các tùy chọn sau để bao gồm dữ liệu với tùy chọn

--data @file.json
0

  1. Dữ liệu được định dạng JSON được trích dẫn được đặt trong dấu ngoặc nhọn

    --data @file.json
    3. Khi chuyển một giá trị cho tham số kiểu JSON, bạn phải thoát khỏi dấu ngoặc kép
    --data @file.json
    4 bằng dấu gạch chéo ngược
    --data @file.json
    5. Ví dụ: trong dấu ngoặc nhọn, bạn phải định dạng
    --data @file.json
    6 là
    --data @file.json
    7

    --date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}
  2. Dữ liệu định dạng JSON không được trích dẫn được đính kèm trong một tệp và được chỉ định bởi ký hiệu

    --data @file.json
    8 và tên tệp. Ví dụ

    --data @file.json

    Sử dụng các tệp bên ngoài cho dữ liệu được định dạng JSON có những ưu điểm sau

    • Bạn có thể sử dụng trình soạn thảo văn bản yêu thích của mình
    • Bạn có thể sử dụng trình kiểm tra cú pháp để tìm và tránh lỗi
    • Bạn có thể sử dụng các công cụ để kiểm tra tính hợp lệ của dữ liệu JSON hoặc định dạng lại nó

Xác thực tệp JSON

Sử dụng công cụ

--data @file.json
9 để kiểm tra tính hợp lệ của tệp JSON

--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}
0

4. 1. 2. Truy xuất danh sách tài nguyên

Phần này trình bày cách sử dụng

--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}
3 với API Vệ tinh 6 để yêu cầu thông tin từ quá trình triển khai Vệ tinh của bạn. Những ví dụ này bao gồm cả yêu cầu và phản hồi. Mong đợi các kết quả khác nhau cho mỗi lần triển khai

Liệt kê người dùng

Ví dụ này là một yêu cầu cơ bản trả về danh sách tài nguyên Vệ tinh, người dùng Vệ tinh trong trường hợp này. Những yêu cầu như vậy trả về một danh sách dữ liệu được bao bọc trong siêu dữ liệu, trong khi các loại yêu cầu khác chỉ trả về đối tượng thực tế

yêu cầu ví dụ

--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}
2

phản hồi ví dụ

--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}
3

4. 1. 3. Tạo và sửa đổi tài nguyên

Phần này trình bày cách sử dụng

--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}
3 với API Vệ tinh 6 để thao tác tài nguyên trên Máy chủ vệ tinh. Các lệnh gọi API này yêu cầu bạn chuyển dữ liệu ở định dạng
--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}
02 bằng lệnh gọi API. Để biết thêm thông tin, hãy xem Phần 4. 1. 1, “Truyền dữ liệu JSON tới yêu cầu API”

Tạo người dùng

Ví dụ này tạo một người dùng sử dụng tùy chọn

--data @file.json
0 để cung cấp thông tin cần thiết

yêu cầu ví dụ

--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}
7

Sửa đổi người dùng

Ví dụ này sửa đổi tên và thông tin đăng nhập của

--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}
04 đã được tạo trong Tạo người dùng

yêu cầu ví dụ

--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}
9

4. 2. Yêu cầu API với Ruby

Phần này phác thảo cách sử dụng Ruby với API vệ tinh để thực hiện các tác vụ khác nhau

Quan trọng

Đây là những tập lệnh và lệnh mẫu. Đảm bảo bạn xem xét cẩn thận các tập lệnh này trước khi sử dụng và thay thế bất kỳ biến, tên người dùng, mật khẩu và thông tin nào khác cho phù hợp với việc triển khai của riêng bạn

4. 2. 1. Tạo đối tượng bằng Ruby

Tập lệnh này kết nối với API vệ tinh Red Hat 6 và tạo một tổ chức, sau đó tạo ba môi trường trong tổ chức. Nếu tổ chức đã tồn tại, tập lệnh sẽ sử dụng tổ chức đó. Nếu bất kỳ môi trường nào đã tồn tại trong tổ chức, tập lệnh sẽ phát sinh lỗi và thoát

Làm cách nào để chuyển tên người dùng và mật khẩu theo yêu cầu Python?

url = "https. // người đưa thư-echo. com/basic-auth"
tên người dùng = "người đưa thư"
mật khẩu = "mật khẩu"
phản ứng = yêu cầu. get(url, auth=(tên người dùng, mật khẩu))
in (phản hồi. status_code)
in (phản hồi. json())

Làm cách nào để chuyển tên người dùng và mật khẩu trong API REST bằng Python?

Có một số phương thức xác thực phổ biến cho API REST có thể được xử lý bằng Yêu cầu Python. Cách đơn giản nhất là chuyển tên người dùng và mật khẩu của bạn đến điểm cuối thích hợp dưới dạng Xác thực cơ bản HTTP ; .

Làm cách nào để nhận mã thông báo xác thực cơ bản từ tên người dùng và mật khẩu trong Python?

Xác thực cơ bản .
yêu cầu nhập r = yêu cầu. nhận ("https. //thí dụ. com", auth=("TÊN NGƯỜI DÙNG", "MẬT KHẨU")) print(r. .
yêu cầu nhập r = yêu cầu. nhận ("https. //TÊN TÀI KHOẢN. MẬT KHẨU@ví dụ. com") in(r. .
nhập yêu cầu từ base64 nhập thông tin đăng nhập b64encode = b64encode(b"USERNAME. MẬT KHẨU") r = yêu cầu

Làm cách nào để lấy tiêu đề Ủy quyền trong Python?

Để gửi yêu cầu GET có tiêu đề ủy quyền Mã thông báo mang bằng Python, bạn cần phải thực hiện yêu cầu HTTP GET và cung cấp Mã thông báo gửi của bạn với Ủy quyền. Tiêu đề HTTP {token} của người mang .