Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÒÆ¶¯»¥ÁªÍøÊµÕ½--Web Restful APIÉè¼ÆºÍ»ù´¡¼Ü¹¹
 
  2904  次浏览      28
 2018-6-22 
 
±à¼­ÍƼö:

±¾ÎÄÀ´×ÔÓÚcnblogs£¬±¾ÎÄÖ÷Òª½²ÊöÖ÷Á÷µÄ¼¸ÖÖ, ²¢¶Ôweb serverµÄ»ù´¡¼Ü¹¹×ö¸ö¼òµ¥µÄÃèÊö¡£

ǰÑÔ:

ÔÚÒÆ¶¯»¥ÁªÍøµÄ´ó³±ÖÐ, Web Restful APIÖð½¥³ÉΪWeb ServerÖØÒªµÄÒ»¸ö·ÖÖ§. ÒÆ¶¯¶ËºÍ·þÎñ¶ËµÄ½»»¥, Ö÷Á÷µÄ·½Ê½»¹ÊÇͨ¹ýHttpЭÒéµÄÐÎʽÀ´½øÐÐ. ÇëÇóÒÔGet/Post·½Ê½, ÏìÓ¦ÒÔjson(Êý¾Ý¸üСÇÉÇÒ×ÔÃèÊöÄÜÁ¦Ç¿)µÄ·½Ê½Õ¼¾ÝÖ÷Á÷. ¸÷´ó»¥ÁªÍø¹«Ë¾, ¶Ô×ÔÉíµÄWeb ApiÉè¼ÆÓи÷×Եıê×¼. ±¾ÎÄÖ÷Òª½²ÊöÖ÷Á÷µÄ¼¸ÖÖ, ²¢¶Ôweb serverµÄ»ù´¡¼Ü¹¹×ö¸ö¼òµ¥µÄÃèÊö.

°Ù¶ÈÔÆÊµÏÖ·½°¸:

°Ù¶ÈÒÆ¶¯ÔÆÊÂÒµ²¿µÄ¶ÔÔÆ·þÎñµÄWeb Api½è¼øÁËÑÇÂíÑ·µÄAWSʵÏÖ·½°¸. ¾ßÌå¿É²Î¼û°Ù¶ÈÒÆ¶¯ÔÆ¿ª·¢ÕßÍøÕ¾: http://developer.baidu.com/.

¸ÃRestful APIµÄÉè¼ÆÌØµã, Ö÷ÒªÓÉÒÔϼ¸·½ÃæÀ´ÃèÊö.

1). URLµÄÉè¼Æ

http[s]: //{server} /rest /2.0 /{product} / { resource } ? {query_ string }

server: ¾ßÌå·þÎñµÄÓòÃû

product: ¾ßÌå·þÎñµÄ²úÆ·Ãû³Æ

resource: ¾ßÌå·þÎñµÄij¸ö×ÊÔ´Ãû³Æ

query_string: ¾ßÌå·þÎñµÄij¸ö·½·¨ËùÓÐkey/value¶Ô²ÎÊý(°üÀ¨º¯ÊýÃû)

2). ÇëÇó/ÏìÓ¦Êý¾Ý¸ñʽ

»ùÓÚHTTPЭÒé, Ö§³ÖGET/POSTÁ½ÖÖ·½Ê½, Ò»°ã¶ÁÇëÇó²ÉÓÃGETģʽ, ¶øÐ´ÇëÇó²ÉÓÃPOSTµÄģʽ.

ÇëÇóÊý¾Ý¸ñʽ: ÓëÆÕͨµÄweb·þÎñ²¢ÎÞÇø±ð, GETģʽ²ÎÊý¸éÖÃÔÚquery_stringÖÐ, POSTģʽ²ÎÊý¸éÖÃÔÚPOST¸½´ø²ÎÊýÖÐ

ÏìÓ¦Êý¾Ý¸ñʽ: ÏìÓ¦µÄ½á¹ûºÍÒµÎñ·þÎñÏà¹Ø

#) ÒµÎñ²Ù×÷³É¹¦

{
¡¡¡¡"request_ id" :12394838223,
¡¡¡¡"response_ params" : { ... }
}

ÆÀ×¢: request_idÊDZ¾´ÎÇëÇóµÄ±êʶºÅ, ÓÃÓÚÎÊÌâ²éÕÒ, response_paramsÔò°üº¬Á˾ßÌåÒµÎñµÄÏìÓ¦½á¹û.

#) ÒµÎñ²Ù×÷ʧ°Ü

{
¡¡¡¡"request_ id" :12394838223,
¡¡¡¡"error_ code" :30000,
¡¡¡¡"error_ msg" :"Request params not valid"
}

ÆÀ×¢: ʧ°Ü·µ»ØµÄ½á¹û¹Ì¶¨°üº¬Èý²¿·Ö: request_id /error_code /error_ msg, error_ code Ö¸¶¨´íÎóÂë, error_msgΪ¾ßÌåµÄ³ö´íÐÅÏ¢.

3). ÒµÎñÂß¼­×´Ì¬ÓëhttpÏìÓ¦ÂëµÄ°ó¶¨

ÒµÎñ½á¹ûÓëhttpÏìÓ¦ÂëµÄ°ó¶¨, ²»¹ÜÊÇ·ñºÏÀí, ÕâÒ²ËãÊÇAWS Web APIµÄÒ»´óÌØÉ«.

±ÈÈç:

ÆÀ×¢: ÒµÎñ·þÎñ²ãÓ¦¸ÃÔÚhttpЭÒéÖ®ÉÏ, Á½ÕßµÄ״̬²»¸Ã°ó¶¨, ÖÁÓÚAWSΪºÎÕâÑùÉè¼Æ, ÎÒÖ»ÄÜ˵"´æÔÚ¼´ºÏÀí"

¸Ã·½°¸ÊµÕ½ºÍµãÆÀ:

ÊÀÉÏûÓÐÒ»¸ö·½°¸ÊÇÍêÃÀµÄ, Ëü×ÜÓÐËüµÄ²»×ã´æÔÚ. Õâ±ß̸̸С±àÔÚ¹¤³Ìʵ¼ùÖÐ, ¶Ô´Ë·½°¸Ëù¸Ð¿®µÄһЩ²»×ã.

ÔÚij¸ö¾ßÌåµÄÔÆ·þÎñÓ¦ÓÃÖÐ, ÌØ¶¨µÄÒ»¸ö·½·¨·ÃÎʳÉΪÁËÈȵã(ÆäËû·½·¨·ÃÎÊÁ¿ÉÙ). ÎÒÃÇÏëÔÚ·´Ïò´úÀí²ã(lighttpd/nginx)×÷·ÖÁ÷, ÈÃʵÏÖFastCGIµÄCÄ£¿é´úÌæÔ­ÉúµÄPHP CGI. Web ServerÊÇÒÀ¾ÝURIÖеķþÎñÓòÃûºÍURI PATHÀ´Æ¥Åä»®·Ö/·ÖÁ÷, È»¶øÒź¶µÄÊÇmethod·½·¨²ÎÊýÔÚURIµÄquery_stringÖÐ, ¸Ã·½°¸ÎÞ·¨ÊµÊ©. Èç¹ûmethod²ÎÊýÔÚURIÖеÄPATHÖÐÄǾͺðìÁË.

¾¡¹ÜHTTPЭÒéÊôÓÚÍøÂçµÄÓ¦Óòã, µ«ÊÇÔÙϸ·ÖµÄ»°, ÒµÎñ²ã¸ÃÔÚHTTPЭÒéÖ®ÉÏ, ²»Í¬µÄЭÒé²ã, ±Ë´ËÖ®¼äÓ¦¸Ã»¥²»Ó°Ïì. ÒµÎñ´íÎóÂëºÍhttp״̬ÂëµÄ°ó¶¨¶àÉÙÈÃÈËÓÐЩÀ§»ó. ÓÐЩ·¢ÉúÔÚWeb Server²ãµÄÕæÕý404´íÎó, È´±»Web APIµÄClient SDKÎóÈÏΪÁËÒµÎñÂß¼­´íÎó, ÕâЩÆäʵ²»Ó¦¸Ã·¢Éú.

¸öÈ˱ȽÏÍÆ³çµÄ×ö·¨:

1). HttpµÄÇëÇó·ÖΪURLÔ¼¶¨¹æÔò¡¢ÇëÇó²ÎÊý¹æÔò

URL¹æÔò:

http: //{server} /{product} /{version} /{logic} / {method} ? {query _ string }

server: Ϊ¾ßÌåµÄ·þÎñÓòÃû

product: ΪӦÓù¤³ÌÃû

version: Ϊ¾ßÌå°æ±¾ºÅ, ±ãÓÚ½«À´µÄ¹¦ÄÜÀ©Õ¹, ¿ÉÒÔÔݶ¨Îª 1.0, 2.0

logic: Ϊ¾ßÌåÒµÎñÂß¼­µÄ³õ²½»®·Ö, ±ÈÈçºó¶Ë¹ÜÀí·½·¨, app¶ËµÄÇëÇó·½·¨

method: ¾ßÌåÒµÎñµÄ·½·¨

¾ßÌåµÄÇëÇó²ÎÊý, ÓÉÖ¸¶¨µÄmethod·½·¨¾ö¶¨, È«¶¼×÷ΪHTTP GET/POSTµÄ²ÎÊýÁбí.

2). HttpµÄÏìÓ¦¹æÔò

HTTPÏìÓ¦ÂëΪ200, Âß¼­½á¹ûÒÔJSON×Ö·û´®µÄÐÎʽ×éÖ¯:

Èç¹ûÏìÓ¦½á¹ûÕýÈ·,Ôò·µ»Ø½á¹ûÈçÏÂËùʾ:

{
¡¡¡¡"success": true,
¡¡¡¡"result_ value" : {
¡¡¡¡¡¡¡¡/ * ÓɾßÌåµÄÒµÎñ·½·¨¾ö¶¨ */
¡¡¡¡}
}

Èç¹ûÏìÓ¦½á¹ûʧ°Ü,Ôò·µ»ØÈçϽá¹û:

{
¡¡¡¡"success" : false,
¡¡¡¡"request_ id": 10001,
¡¡¡¡"err_ code": 1001,
¡¡¡¡"err_ msg": "Internal Server Error"
}

½è¼øÁËAWSµÄÉè¼ÆË¼Â·, ͬʱÅׯúÁËÒµÎñ´íÎóÂëÓëHTTP״̬ÂëµÄ°ó¶¨, ͬʱ°Ñmethod/logic/version¸éÖÃÔÚURIÖеÄPATHÖÐ, ±ãÓÚWebServerµÄ·ÖÁ÷.

Web ServerµÄ»ù´¡¼Ü¹¹

¶ÔÓÚWeb ServerµÄ»ù´¡¼Ü¹¹, ´óÖÂÓÐÒÔϼ¸ÖÖÁ÷Ðеķ½Ê½.

1). ²ÉÓÃLVSµÄ·½Ê½:

¶ÔÄÚ²¿¶à¸ö½Úµã(IPµØÖ·)µÄ·ÃÎÊ, ¶ÔÍâ³éÏóΪͬһ¸öIPµØÖ·, Õâ¾ÍÊÇLVSµÄ·½Ê½. Æä¿ÉÒÔÀí½âΪÈí¼þ¼¶¸ºÔؾùºâ·½Ê½(ÐèÒªÒÀÀµÓ²¼þ)

2). ²ÉÓÃNginx/ApacheµÄ·´Ïò´úÀí:

¡¡¡¡

ÆÀ×¢:NginxµÄ·´Ïò´úÀí,¿ÉÒÔ·½±ã¶Ô¾²Ì¬×ÊÔ´ºÍ¶¯Ì¬×ÊÔ´×ö·ÖÀë, ¶ÔСÆóÒµ¶øÑÔ, ÊÇ×î³£ÓõÄÒ»ÖÖ·½Ê½.

3). LVSºÍNginx/Apache·´Ïò´úÀíµÄ½áºÏ

¡¡¡¡

   
2904 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

ÆóÒµ¼Ü¹¹¡¢TOGAFÓëArchiMate¸ÅÀÀ
¼Ü¹¹Ê¦Ö®Â·-ÈçºÎ×öºÃÒµÎñ½¨Ä££¿
´óÐÍÍøÕ¾µçÉÌÍøÕ¾¼Ü¹¹°¸ÀýºÍ¼¼Êõ¼Ü¹¹µÄʾÀý
ÍêÕûµÄArchimateÊÓµãÖ¸ÄÏ£¨°üÀ¨Ê¾Àý£©
Ïà¹ØÎĵµ

Êý¾ÝÖÐ̨¼¼Êõ¼Ü¹¹·½·¨ÂÛÓëʵ¼ù
ÊÊÓÃArchiMate¡¢EA ºÍ iSpace½øÐÐÆóÒµ¼Ü¹¹½¨Ä£
ZachmanÆóÒµ¼Ü¹¹¿ò¼Ü¼ò½é
ÆóÒµ¼Ü¹¹ÈÃSOAÂ䵨
Ïà¹Ø¿Î³Ì

ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ÖÐ̨սÂÔ¡¢ÖÐ̨½¨ÉèÓëÊý×ÖÉÌÒµ
ÒÚ¼¶Óû§¸ß²¢·¢¡¢¸ß¿ÉÓÃϵͳ¼Ü¹¹
¸ß¿ÉÓ÷ֲ¼Ê½¼Ü¹¹Éè¼ÆÓëʵ¼ù