2010-12-13 2 views
12

Nếu không phát minh lại bánh xe, những gì tôi có thể sử dụng để quản lý các phiên của người dùng trong một ứng dụng web và có thể phản hồi với JSON theo yêu cầu ajax?Khuôn khổ máy chủ Delphi để quản lý các phiên và phản hồi với JSON theo yêu cầu ajax?

Có một số khuôn khổ (được tạo ví dụ với các thành phần Indy hoặc một cái gì đó như thế này)?

Lưu ý cho tiền thưởng:

trong thực tế nó là đủ cho tôi để có một câu trả lời với một ví dụ rõ ràng về một ứng dụng máy chủ phục vụ json. Bằng cách nào đó một ví dụ Delphi của ví dụ php được đề cập đến HERE. (không có phần DB, tôi muốn xem các khái niệm cơ bản về cách gửi JSON. Tôi có kiến ​​thức cơ bản về TIdHTTPServer.)

+0

Một yêu cầu là một yêu cầu, không ngại nếu nó là ajax hay không trên các mặt hàng. Bạn có thể muốn cập nhật câu hỏi của mình để chỉ yêu cầu quản lý phiên. – jachguate

+1

@jachguate: Quản lý phiên chỉ là một phần của việc triển khai yêu cầu. Bạn sẽ phải phân tích truy vấn, sau đó truy xuất dữ liệu, sau đó tạo phản hồi JSON. Và AJAX giới thiệu thông số kỹ thuật mới về định dạng JSON. –

+0

@ A.Bouchez: Bạn có thể cho tôi biết những gì là khác nhau trong định dạng json khi bạn phục vụ nó qua một yêu cầu ajax từ những gì bạn phục vụ nếu yêu cầu không phải là ajax? – jachguate

Trả lời

5

Có lẽ điều này có thể giúp bạn:

Servers REST trong Delphi XE Sử dụng DataSnap Bạch thư

Tìm hiểu làm thế nào để xây dựng các máy chủ còn lại sử dụng các tính năng có sẵn trong Delphi XE, làm thế nào để mở rộng chúng với thêm mã hỗ trợ Delphi và làm thế nào để tận dụng lợi thế của thư viện jQuery.

Marco Cantù

http://app.en25.com/e/er.aspx?s=608&lid=4414&elq=d428643420d2494581299418d9753feb

+0

Cảm ơn, điều này rất thông tin, tôi không có thời gian để cài đặt thử nghiệm Delphi XE Enterprise (tôi có chuyên môn) và chạy các ví dụ vào cuối tiền thưởng. Tôi nhận được "ra khỏi hộp" với datasnap xe so với tạo ra tất cả từ đầu với webbroker? Tôi đoán bằng cách đọc tiêu đề của whitepape: phiên quản lý, xác thực và sau đó? (Tôi có nghĩa là đó là những lợi thế của datasnap xe trong trường hợp cụ thể của tôi) – LaBracca

+0

Về cơ bản trong Datasnap nếu bạn có một hàm trả về một đối tượng Datasnap sẽ tự động phục vụ nó như là json. Tham khảo ĐỐI TƯỢNG VÀ MARSHALING trên trang 29 trong tệp .pdf – Toto

5

Bạn có thể xem Synopse SQLite3 Framework, chúng tôi vừa cập nhật phiên bản 1.11.

serves the data in pure JSON, sẵn sàng để sử dụng trong bất kỳ ứng dụng AJAX nào.

Bạn cũng có thể dễ dàng tạo Dịch vụ, chính xác hơn Client-Server JSON RESTful Services. Trong trường hợp này, bạn thậm chí không thể sử dụng SQLite3 để lưu trữ dữ liệu của bạn.

Khuôn khổ này là Nguồn mở thuần túy, biên dịch/chạy/được kiểm tra cho Delphi 6 lên đến XE, là Unicode sẵn sàng cho tất cả các phiên bản của Delphi (sử dụng UTF-8 nội bộ).

Bằng cách sử dụng khung này, bạn có thể dễ dàng tạo cũng Delphi clients, using JSON data from the same server.

Chưa có xử lý phiên Người dùng nội bộ nào. Bởi vì có một số cách để triển khai chúng và, vì khung của chúng tôi là RESTful, do đó không trạng thái: không cần phiên nào.

Nếu bạn cần, tôi có thể dễ dàng thêm các phiên HTTP bằng Cookie. Điều gì về xác thực người dùng bạn đang mong đợi?

+0

Cảm ơn bạn đã trả lời. Những gì tôi đang tìm kiếm nó là một khung công tác Delphi để tạo ra một backend cho một ứng dụng web. Tôi đang lên kế hoạch sử dụng Sencha Touch cho giao diện người dùng (và đây là lý do tại sao tôi không muốn sử dụng những thứ như Intraweb). Tôi có rất nhiều mã mà tôi có thể tái sử dụng, đây là lý do tại sao tôi đang tìm một phụ trợ Delphi (và hơn nữa bởi vì nó là ngôn ngữ duy nhất tôi thành thạo). Việc xác thực tôi cần là User/Password cổ điển, nó không phải là một DB autenthication thực, ngay cả khi dưới mui xe tôi sử dụng DB người dùng cho autenthication, nhưng sau đó tất cả các kết nối được thực hiện thông qua một người dùng duy nhất. Vì vậy, tổng hợp là có thể. – LaBracca

+0

Bạn có nghĩ rằng khuôn khổ đó sẽ cho phép tôi tạo ra một ứng dụng web sử dụng Sencha Touch (hoặc bất kỳ khung javascript nào) mà không phải chịu đựng quá nhiều? (Nếu không nói: đã có một ứng dụng đang hoạt động để kiểm tra hay không? Hoặc bạn chọn đề xuất nào để quản lý autenthication? – LaBracca

+0

Sencha Touch thuộc cùng một họ với ExtJS. Vì vậy, để tránh nhiều "đau khổ", tôi khuyên bạn nên xem ExtPascal hoặc Raudus, được dành riêng cho ExtJS: http://stackoverflow.com/questions/3022378/raudus-vs-extpascal-delphi-web-developement-alternatives-that-use-extjs Nhưng hãy lưu ý đến giấy phép ExtJS/SenchaTouch, Đây không phải là nguồn mở cho tất cả các mục đích sử dụng –

5

DelphiMVCFramework thực hiện điều này

Một số tính năng đáng chú ý:

  • RESTful (RMM Level 3) compliant
  • có thể được sử dụng trong môi trường cân bằng tải sử dụng Redis (http://Redis.io) [dev]
  • Fancy URL có ánh xạ tham số
  • Hiển thị chuyên biệt để tạo văn bản, html, JSON
  • mapper mạnh mẽ để lập bản đồ json để các đối tượng và tập hợp dữ liệu với các đối tượng
  • Có thể được đóng gói như là đứng một mình máy chủ, module apache (XE6, XE7, XE8) và ISAPI dll
  • Tích hợp trình RESTClient với XE3, XE4, XE5, XE6 , XE7 và XE8 hoàn toàn đơn vị thử nghiệm
  • có một mẫu cho mỗi functionlities
  • có một bộ hoàn chỉnh các tập huấn về điều đó, nhưng mẫu được bao gồm trong dự án hỗ trợ thực nghiệm cho IOCP [dev]
  • Trang được tạo phía máy chủ s sử dụng eLua (Embedded Lua) [loại bỏ sớm]
  • đào tạo cụ thể có sẵn (hỏi tôi cho một ngày và một nơi)
  • Tin nhắn mở rộng sử dụng STOMP (beta)
  • Cộng đồng driven (Facebook nhóm https://www.facebook.com/groups/delphimvcframework)
  • đơn giản và tài liệu
  • có những cuốn sách nói về khuôn khổ

trang web dự án: https://github.com/danieleteti/delphimvcframework

N.B. Tôi là nhà phát triển chính

4

Tôi sẽ đề xuất Delphi on Rails, đây là khung công tác web REST/MVC/StateLess mã nguồn mở.

http://code.google.com/p/delphionrails/

Nó sử dụng:

  • superobject phân tích cú pháp
  • lái xe
  • UIB/Firebird JSON JSON
  • Cairo cho SVG, PDF, PNG render
  • LUA cho kịch bản/mẫu .. .

Nó có thể tự động hóa các cấu trúc dữ liệu Delphi thành JSON bằng RTTI mới được giới thiệu trong Delphi 2010 & XE.

0

Tôi muốn giới thiệu siêu Object Toolkit.

http://www.progdigy.com

Ví dụ Code:

procedure Share(ARequestInfo: TIdHTTPRequestInfo) 
var 
ReturnObject: ISuperObject; 
begin 
    ReturnObject := SO(); 
    ReturnObject.B['success'] := false; 

    AResponseInfo.ContentType := 'application/json'; 
    AResponseInfo.ContentText := ReturnObject.AsJSon(); 
end;